TPTP Problem File: ITP074^2.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : ITP074^2 : TPTP v8.2.0. Released v7.5.0.
% Domain   : Interactive Theorem Proving
% Problem  : Sledgehammer HF problem prob_612__5334652_1
% Version  : Especial.
% English  :

% Refs     : [BH+15] Blanchette et al. (2015), Mining the Archive of Formal
%          : [Des21] Desharnais (2021), Email to Geoff Sutcliffe
% Source   : [Des21]
% Names    : HF/prob_612__5334652_1 [Des21]

% Status   : Theorem
% Rating   : 0.33 v8.1.0, 0.25 v7.5.0
% Syntax   : Number of formulae    :  348 ( 113 unt;  48 typ;   0 def)
%            Number of atoms       :  732 ( 269 equ;   0 cnn)
%            Maximal formula atoms :    7 (   2 avg)
%            Number of connectives : 2623 (  34   ~;   7   |;  29   &;2255   @)
%                                         (   0 <=>; 298  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   18 (   6 avg)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  :  113 ( 113   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   47 (  46 usr;   2 con; 0-4 aty)
%            Number of variables   :  843 (  71   ^; 728   !;  15   ?; 843   :)
%                                         (  29  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_THM_EQU_NAR

% Comments : This file was generated by Sledgehammer 2021-02-23 16:22:40.568
%------------------------------------------------------------------------------
% Could-be-implicit typings (3)
thf(ty_t_HF__Mirabelle__fsbjehakzm_Ohf,type,
    hF_Mirabelle_hf: $tType ).

thf(ty_t_Set_Oset,type,
    set: $tType > $tType ).

thf(ty_t_Nat_Onat,type,
    nat: $tType ).

% Explicit typings (45)
thf(sy_cl_HOL_Otype,type,
    type: 
      !>[A: $tType] : $o ).

thf(sy_cl_Groups_Ozero,type,
    zero: 
      !>[A: $tType] : $o ).

thf(sy_cl_Groups_Ominus,type,
    minus: 
      !>[A: $tType] : $o ).

thf(sy_cl_Orderings_Oorder,type,
    order: 
      !>[A: $tType] : $o ).

thf(sy_cl_Groups_Ogroup__add,type,
    group_add: 
      !>[A: $tType] : $o ).

thf(sy_cl_Lattices_Olattice,type,
    lattice: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Osemiring__1,type,
    semiring_1: 
      !>[A: $tType] : $o ).

thf(sy_cl_Orderings_Opreorder,type,
    preorder: 
      !>[A: $tType] : $o ).

thf(sy_cl_Nat_Osemiring__char__0,type,
    semiring_char_0: 
      !>[A: $tType] : $o ).

thf(sy_cl_Groups_Ocomm__monoid__diff,type,
    comm_monoid_diff: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Osemiring__1__cancel,type,
    semiring_1_cancel: 
      !>[A: $tType] : $o ).

thf(sy_cl_Lattices_Odistrib__lattice,type,
    distrib_lattice: 
      !>[A: $tType] : $o ).

thf(sy_cl_Lattices_Osemilattice__inf,type,
    semilattice_inf: 
      !>[A: $tType] : $o ).

thf(sy_cl_Lattices_Osemilattice__sup,type,
    semilattice_sup: 
      !>[A: $tType] : $o ).

thf(sy_cl_Groups_Oordered__ab__group__add,type,
    ordered_ab_group_add: 
      !>[A: $tType] : $o ).

thf(sy_cl_Groups_Ocancel__comm__monoid__add,type,
    cancel1352612707id_add: 
      !>[A: $tType] : $o ).

thf(sy_cl_Groups_Ocancel__ab__semigroup__add,type,
    cancel146912293up_add: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Olinordered__nonzero__semiring,type,
    linord1659791738miring: 
      !>[A: $tType] : $o ).

thf(sy_cl_Groups_Ocanonically__ordered__monoid__add,type,
    canoni770627133id_add: 
      !>[A: $tType] : $o ).

thf(sy_c_Groups_Ominus__class_Ominus,type,
    minus_minus: 
      !>[A: $tType] : ( A > A > A ) ).

thf(sy_c_Groups_Ozero__class_Ozero,type,
    zero_zero: 
      !>[A: $tType] : A ).

thf(sy_c_HF__Mirabelle__fsbjehakzm_OHCollect,type,
    hF_Mir1687042746ollect: ( hF_Mirabelle_hf > $o ) > hF_Mirabelle_hf > hF_Mirabelle_hf ).

thf(sy_c_HF__Mirabelle__fsbjehakzm_OHF,type,
    hF_Mirabelle_HF: ( set @ hF_Mirabelle_hf ) > hF_Mirabelle_hf ).

thf(sy_c_HF__Mirabelle__fsbjehakzm_OHInter,type,
    hF_Mirabelle_HInter: hF_Mirabelle_hf > hF_Mirabelle_hf ).

thf(sy_c_HF__Mirabelle__fsbjehakzm_OHUnion,type,
    hF_Mirabelle_HUnion: hF_Mirabelle_hf > hF_Mirabelle_hf ).

thf(sy_c_HF__Mirabelle__fsbjehakzm_OPrimReplace,type,
    hF_Mir569462966eplace: hF_Mirabelle_hf > ( hF_Mirabelle_hf > hF_Mirabelle_hf > $o ) > hF_Mirabelle_hf ).

thf(sy_c_HF__Mirabelle__fsbjehakzm_ORepFun,type,
    hF_Mirabelle_RepFun: hF_Mirabelle_hf > ( hF_Mirabelle_hf > hF_Mirabelle_hf ) > hF_Mirabelle_hf ).

thf(sy_c_HF__Mirabelle__fsbjehakzm_OReplace,type,
    hF_Mirabelle_Replace: hF_Mirabelle_hf > ( hF_Mirabelle_hf > hF_Mirabelle_hf > $o ) > hF_Mirabelle_hf ).

thf(sy_c_HF__Mirabelle__fsbjehakzm_Ohf_OAbs__hf,type,
    hF_Mirabelle_Abs_hf: nat > hF_Mirabelle_hf ).

thf(sy_c_HF__Mirabelle__fsbjehakzm_Ohfset,type,
    hF_Mirabelle_hfset: hF_Mirabelle_hf > ( set @ hF_Mirabelle_hf ) ).

thf(sy_c_HF__Mirabelle__fsbjehakzm_Ohfst,type,
    hF_Mirabelle_hfst: hF_Mirabelle_hf > hF_Mirabelle_hf ).

thf(sy_c_HF__Mirabelle__fsbjehakzm_Ohinsert,type,
    hF_Mirabelle_hinsert: hF_Mirabelle_hf > hF_Mirabelle_hf > hF_Mirabelle_hf ).

thf(sy_c_HF__Mirabelle__fsbjehakzm_Ohmem,type,
    hF_Mirabelle_hmem: hF_Mirabelle_hf > hF_Mirabelle_hf > $o ).

thf(sy_c_HF__Mirabelle__fsbjehakzm_Ohpair,type,
    hF_Mirabelle_hpair: hF_Mirabelle_hf > hF_Mirabelle_hf > hF_Mirabelle_hf ).

thf(sy_c_HF__Mirabelle__fsbjehakzm_Ohsnd,type,
    hF_Mirabelle_hsnd: hF_Mirabelle_hf > hF_Mirabelle_hf ).

thf(sy_c_HF__Mirabelle__fsbjehakzm_Ohsplit,type,
    hF_Mirabelle_hsplit: 
      !>[A: $tType] : ( ( hF_Mirabelle_hf > hF_Mirabelle_hf > A ) > hF_Mirabelle_hf > A ) ).

thf(sy_c_Lattices_Oinf__class_Oinf,type,
    inf_inf: 
      !>[A: $tType] : ( A > A > A ) ).

thf(sy_c_Lattices_Osup__class_Osup,type,
    sup_sup: 
      !>[A: $tType] : ( A > A > A ) ).

thf(sy_c_Nat_Osemiring__1__class_Oof__nat,type,
    semiring_1_of_nat: 
      !>[A: $tType] : ( nat > A ) ).

thf(sy_c_Nat_Osemiring__1__class_Oof__nat__aux,type,
    semiri532925092at_aux: 
      !>[A: $tType] : ( ( A > A ) > nat > A > A ) ).

thf(sy_c_Orderings_Oord__class_Oless__eq,type,
    ord_less_eq: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Set_OCollect,type,
    collect: 
      !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).

thf(sy_c_member,type,
    member: 
      !>[A: $tType] : ( A > ( set @ A ) > $o ) ).

thf(sy_v_x,type,
    x: hF_Mirabelle_hf ).

thf(sy_v_y,type,
    y: hF_Mirabelle_hf ).

% Relevant facts (254)
thf(fact_0_hpair__iff,axiom,
    ! [A2: hF_Mirabelle_hf,B: hF_Mirabelle_hf,A3: hF_Mirabelle_hf,B2: hF_Mirabelle_hf] :
      ( ( ( hF_Mirabelle_hpair @ A2 @ B )
        = ( hF_Mirabelle_hpair @ A3 @ B2 ) )
      = ( ( A2 = A3 )
        & ( B = B2 ) ) ) ).

% hpair_iff
thf(fact_1_hpair__inject,axiom,
    ! [A2: hF_Mirabelle_hf,B: hF_Mirabelle_hf,A3: hF_Mirabelle_hf,B2: hF_Mirabelle_hf] :
      ( ( ( hF_Mirabelle_hpair @ A2 @ B )
        = ( hF_Mirabelle_hpair @ A3 @ B2 ) )
     => ~ ( ( A2 = A3 )
         => ( B != B2 ) ) ) ).

% hpair_inject
thf(fact_2_hpair__neq__fst,axiom,
    ! [A2: hF_Mirabelle_hf,B: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hpair @ A2 @ B )
     != A2 ) ).

% hpair_neq_fst
thf(fact_3_hpair__neq__snd,axiom,
    ! [A2: hF_Mirabelle_hf,B: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hpair @ A2 @ B )
     != B ) ).

% hpair_neq_snd
thf(fact_4_hsplit,axiom,
    ! [A: $tType,C: hF_Mirabelle_hf > hF_Mirabelle_hf > A,A2: hF_Mirabelle_hf,B: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hsplit @ A @ C @ ( hF_Mirabelle_hpair @ A2 @ B ) )
      = ( C @ A2 @ B ) ) ).

% hsplit
thf(fact_5_hfst__conv,axiom,
    ! [A2: hF_Mirabelle_hf,B: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hfst @ ( hF_Mirabelle_hpair @ A2 @ B ) )
      = A2 ) ).

% hfst_conv
thf(fact_6_hsnd__conv,axiom,
    ! [A2: hF_Mirabelle_hf,B: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hsnd @ ( hF_Mirabelle_hpair @ A2 @ B ) )
      = B ) ).

% hsnd_conv
thf(fact_7_HInter__hempty,axiom,
    ( ( hF_Mirabelle_HInter @ ( zero_zero @ hF_Mirabelle_hf ) )
    = ( zero_zero @ hF_Mirabelle_hf ) ) ).

% HInter_hempty
thf(fact_8_HCollect__hempty,axiom,
    ! [P: hF_Mirabelle_hf > $o] :
      ( ( hF_Mir1687042746ollect @ P @ ( zero_zero @ hF_Mirabelle_hf ) )
      = ( zero_zero @ hF_Mirabelle_hf ) ) ).

% HCollect_hempty
thf(fact_9_Replace__0,axiom,
    ! [R: hF_Mirabelle_hf > hF_Mirabelle_hf > $o] :
      ( ( hF_Mirabelle_Replace @ ( zero_zero @ hF_Mirabelle_hf ) @ R )
      = ( zero_zero @ hF_Mirabelle_hf ) ) ).

% Replace_0
thf(fact_10_HUnion__hempty,axiom,
    ( ( hF_Mirabelle_HUnion @ ( zero_zero @ hF_Mirabelle_hf ) )
    = ( zero_zero @ hF_Mirabelle_hf ) ) ).

% HUnion_hempty
thf(fact_11_zero__reorient,axiom,
    ! [A: $tType] :
      ( ( zero @ A )
     => ! [X: A] :
          ( ( ( zero_zero @ A )
            = X )
          = ( X
            = ( zero_zero @ A ) ) ) ) ).

% zero_reorient
thf(fact_12_RepFun__0,axiom,
    ! [F: hF_Mirabelle_hf > hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_RepFun @ ( zero_zero @ hF_Mirabelle_hf ) @ F )
      = ( zero_zero @ hF_Mirabelle_hf ) ) ).

% RepFun_0
thf(fact_13_hpair__def,axiom,
    ( hF_Mirabelle_hpair
    = ( ^ [A4: hF_Mirabelle_hf,B3: hF_Mirabelle_hf] : ( hF_Mirabelle_hinsert @ ( hF_Mirabelle_hinsert @ A4 @ ( zero_zero @ hF_Mirabelle_hf ) ) @ ( hF_Mirabelle_hinsert @ ( hF_Mirabelle_hinsert @ A4 @ ( hF_Mirabelle_hinsert @ B3 @ ( zero_zero @ hF_Mirabelle_hf ) ) ) @ ( zero_zero @ hF_Mirabelle_hf ) ) ) ) ) ).

% hpair_def
thf(fact_14_hpair__def_H,axiom,
    ( hF_Mirabelle_hpair
    = ( ^ [A4: hF_Mirabelle_hf,B3: hF_Mirabelle_hf] : ( hF_Mirabelle_hinsert @ ( hF_Mirabelle_hinsert @ A4 @ ( hF_Mirabelle_hinsert @ A4 @ ( zero_zero @ hF_Mirabelle_hf ) ) ) @ ( hF_Mirabelle_hinsert @ ( hF_Mirabelle_hinsert @ A4 @ ( hF_Mirabelle_hinsert @ B3 @ ( zero_zero @ hF_Mirabelle_hf ) ) ) @ ( zero_zero @ hF_Mirabelle_hf ) ) ) ) ) ).

% hpair_def'
thf(fact_15_singleton__eq__iff,axiom,
    ! [A2: hF_Mirabelle_hf,B: hF_Mirabelle_hf] :
      ( ( ( hF_Mirabelle_hinsert @ A2 @ ( zero_zero @ hF_Mirabelle_hf ) )
        = ( hF_Mirabelle_hinsert @ B @ ( zero_zero @ hF_Mirabelle_hf ) ) )
      = ( A2 = B ) ) ).

% singleton_eq_iff
thf(fact_16_RepFun__hinsert,axiom,
    ! [A2: hF_Mirabelle_hf,B: hF_Mirabelle_hf,F: hF_Mirabelle_hf > hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_RepFun @ ( hF_Mirabelle_hinsert @ A2 @ B ) @ F )
      = ( hF_Mirabelle_hinsert @ ( F @ A2 ) @ ( hF_Mirabelle_RepFun @ B @ F ) ) ) ).

% RepFun_hinsert
thf(fact_17_hinsert__commute,axiom,
    ! [X: hF_Mirabelle_hf,Y: hF_Mirabelle_hf,Z: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hinsert @ X @ ( hF_Mirabelle_hinsert @ Y @ Z ) )
      = ( hF_Mirabelle_hinsert @ Y @ ( hF_Mirabelle_hinsert @ X @ Z ) ) ) ).

% hinsert_commute
thf(fact_18_hinsert__nonempty,axiom,
    ! [A2: hF_Mirabelle_hf,A5: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hinsert @ A2 @ A5 )
     != ( zero_zero @ hF_Mirabelle_hf ) ) ).

% hinsert_nonempty
thf(fact_19_HF__Mirabelle__fsbjehakzm_Odoubleton__eq__iff,axiom,
    ! [A2: hF_Mirabelle_hf,B: hF_Mirabelle_hf,C: hF_Mirabelle_hf,D: hF_Mirabelle_hf] :
      ( ( ( hF_Mirabelle_hinsert @ A2 @ ( hF_Mirabelle_hinsert @ B @ ( zero_zero @ hF_Mirabelle_hf ) ) )
        = ( hF_Mirabelle_hinsert @ C @ ( hF_Mirabelle_hinsert @ D @ ( zero_zero @ hF_Mirabelle_hf ) ) ) )
      = ( ( ( A2 = C )
          & ( B = D ) )
        | ( ( A2 = D )
          & ( B = C ) ) ) ) ).

% HF_Mirabelle_fsbjehakzm.doubleton_eq_iff
thf(fact_20_hf__induct__ax,axiom,
    ! [P: hF_Mirabelle_hf > $o,X: hF_Mirabelle_hf] :
      ( ( P @ ( zero_zero @ hF_Mirabelle_hf ) )
     => ( ! [X2: hF_Mirabelle_hf] :
            ( ( P @ X2 )
           => ! [Y2: hF_Mirabelle_hf] :
                ( ( P @ Y2 )
               => ( P @ ( hF_Mirabelle_hinsert @ Y2 @ X2 ) ) ) )
       => ( P @ X ) ) ) ).

% hf_induct_ax
thf(fact_21_HInter__hinsert,axiom,
    ! [A5: hF_Mirabelle_hf,A2: hF_Mirabelle_hf] :
      ( ( A5
       != ( zero_zero @ hF_Mirabelle_hf ) )
     => ( ( hF_Mirabelle_HInter @ ( hF_Mirabelle_hinsert @ A2 @ A5 ) )
        = ( inf_inf @ hF_Mirabelle_hf @ A2 @ ( hF_Mirabelle_HInter @ A5 ) ) ) ) ).

% HInter_hinsert
thf(fact_22_Abs__hf__0,axiom,
    ( ( hF_Mirabelle_Abs_hf @ ( zero_zero @ nat ) )
    = ( zero_zero @ hF_Mirabelle_hf ) ) ).

% Abs_hf_0
thf(fact_23_HInter__iff,axiom,
    ! [A5: hF_Mirabelle_hf,X: hF_Mirabelle_hf] :
      ( ( A5
       != ( zero_zero @ hF_Mirabelle_hf ) )
     => ( ( hF_Mirabelle_hmem @ X @ ( hF_Mirabelle_HInter @ A5 ) )
        = ( ! [Y3: hF_Mirabelle_hf] :
              ( ( hF_Mirabelle_hmem @ Y3 @ A5 )
             => ( hF_Mirabelle_hmem @ X @ Y3 ) ) ) ) ) ).

% HInter_iff
thf(fact_24_HUnion__hinsert,axiom,
    ! [A2: hF_Mirabelle_hf,A5: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_HUnion @ ( hF_Mirabelle_hinsert @ A2 @ A5 ) )
      = ( sup_sup @ hF_Mirabelle_hf @ A2 @ ( hF_Mirabelle_HUnion @ A5 ) ) ) ).

% HUnion_hinsert
thf(fact_25_hdiff__insert,axiom,
    ! [A5: hF_Mirabelle_hf,A2: hF_Mirabelle_hf,B4: hF_Mirabelle_hf] :
      ( ( minus_minus @ hF_Mirabelle_hf @ A5 @ ( hF_Mirabelle_hinsert @ A2 @ B4 ) )
      = ( minus_minus @ hF_Mirabelle_hf @ ( minus_minus @ hF_Mirabelle_hf @ A5 @ B4 ) @ ( hF_Mirabelle_hinsert @ A2 @ ( zero_zero @ hF_Mirabelle_hf ) ) ) ) ).

% hdiff_insert
thf(fact_26_hinsert__eq__sup,axiom,
    ( hF_Mirabelle_hinsert
    = ( ^ [A4: hF_Mirabelle_hf,B3: hF_Mirabelle_hf] : ( sup_sup @ hF_Mirabelle_hf @ B3 @ ( hF_Mirabelle_hinsert @ A4 @ ( zero_zero @ hF_Mirabelle_hf ) ) ) ) ) ).

% hinsert_eq_sup
thf(fact_27_hf__induct,axiom,
    ! [P: hF_Mirabelle_hf > $o,Z: hF_Mirabelle_hf] :
      ( ( P @ ( zero_zero @ hF_Mirabelle_hf ) )
     => ( ! [X2: hF_Mirabelle_hf,Y2: hF_Mirabelle_hf] :
            ( ( P @ X2 )
           => ( ( P @ Y2 )
             => ( ~ ( hF_Mirabelle_hmem @ X2 @ Y2 )
               => ( P @ ( hF_Mirabelle_hinsert @ X2 @ Y2 ) ) ) ) )
       => ( P @ Z ) ) ) ).

% hf_induct
thf(fact_28_hf__cases,axiom,
    ! [Y: hF_Mirabelle_hf] :
      ( ( Y
       != ( zero_zero @ hF_Mirabelle_hf ) )
     => ~ ! [A6: hF_Mirabelle_hf,B5: hF_Mirabelle_hf] :
            ( ( Y
              = ( hF_Mirabelle_hinsert @ A6 @ B5 ) )
           => ( hF_Mirabelle_hmem @ A6 @ B5 ) ) ) ).

% hf_cases
thf(fact_29_Replace__hunion,axiom,
    ! [A5: hF_Mirabelle_hf,B4: hF_Mirabelle_hf,R: hF_Mirabelle_hf > hF_Mirabelle_hf > $o] :
      ( ( hF_Mirabelle_Replace @ ( sup_sup @ hF_Mirabelle_hf @ A5 @ B4 ) @ R )
      = ( sup_sup @ hF_Mirabelle_hf @ ( hF_Mirabelle_Replace @ A5 @ R ) @ ( hF_Mirabelle_Replace @ B4 @ R ) ) ) ).

% Replace_hunion
thf(fact_30_HCollect__iff,axiom,
    ! [X: hF_Mirabelle_hf,P: hF_Mirabelle_hf > $o,A5: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hmem @ X @ ( hF_Mir1687042746ollect @ P @ A5 ) )
      = ( ( P @ X )
        & ( hF_Mirabelle_hmem @ X @ A5 ) ) ) ).

% HCollect_iff
thf(fact_31_hf__equalityI,axiom,
    ! [A2: hF_Mirabelle_hf,B: hF_Mirabelle_hf] :
      ( ! [X2: hF_Mirabelle_hf] :
          ( ( hF_Mirabelle_hmem @ X2 @ A2 )
          = ( hF_Mirabelle_hmem @ X2 @ B ) )
     => ( A2 = B ) ) ).

% hf_equalityI
thf(fact_32_diff__self,axiom,
    ! [A: $tType] :
      ( ( group_add @ A )
     => ! [A2: A] :
          ( ( minus_minus @ A @ A2 @ A2 )
          = ( zero_zero @ A ) ) ) ).

% diff_self
thf(fact_33_diff__0__right,axiom,
    ! [A: $tType] :
      ( ( group_add @ A )
     => ! [A2: A] :
          ( ( minus_minus @ A @ A2 @ ( zero_zero @ A ) )
          = A2 ) ) ).

% diff_0_right
thf(fact_34_zero__diff,axiom,
    ! [A: $tType] :
      ( ( comm_monoid_diff @ A )
     => ! [A2: A] :
          ( ( minus_minus @ A @ ( zero_zero @ A ) @ A2 )
          = ( zero_zero @ A ) ) ) ).

% zero_diff
thf(fact_35_diff__zero,axiom,
    ! [A: $tType] :
      ( ( cancel1352612707id_add @ A )
     => ! [A2: A] :
          ( ( minus_minus @ A @ A2 @ ( zero_zero @ A ) )
          = A2 ) ) ).

% diff_zero
thf(fact_36_cancel__comm__monoid__add__class_Odiff__cancel,axiom,
    ! [A: $tType] :
      ( ( cancel1352612707id_add @ A )
     => ! [A2: A] :
          ( ( minus_minus @ A @ A2 @ A2 )
          = ( zero_zero @ A ) ) ) ).

% cancel_comm_monoid_add_class.diff_cancel
thf(fact_37_hmem__hinsert,axiom,
    ! [A2: hF_Mirabelle_hf,B: hF_Mirabelle_hf,C: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hmem @ A2 @ ( hF_Mirabelle_hinsert @ B @ C ) )
      = ( ( A2 = B )
        | ( hF_Mirabelle_hmem @ A2 @ C ) ) ) ).

% hmem_hinsert
thf(fact_38_hunion__iff,axiom,
    ! [X: hF_Mirabelle_hf,A2: hF_Mirabelle_hf,B: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hmem @ X @ ( sup_sup @ hF_Mirabelle_hf @ A2 @ B ) )
      = ( ( hF_Mirabelle_hmem @ X @ A2 )
        | ( hF_Mirabelle_hmem @ X @ B ) ) ) ).

% hunion_iff
thf(fact_39_hinter__iff,axiom,
    ! [U: hF_Mirabelle_hf,X: hF_Mirabelle_hf,Y: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hmem @ U @ ( inf_inf @ hF_Mirabelle_hf @ X @ Y ) )
      = ( ( hF_Mirabelle_hmem @ U @ X )
        & ( hF_Mirabelle_hmem @ U @ Y ) ) ) ).

% hinter_iff
thf(fact_40_RepFun__iff,axiom,
    ! [V: hF_Mirabelle_hf,A5: hF_Mirabelle_hf,F: hF_Mirabelle_hf > hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hmem @ V @ ( hF_Mirabelle_RepFun @ A5 @ F ) )
      = ( ? [U2: hF_Mirabelle_hf] :
            ( ( hF_Mirabelle_hmem @ U2 @ A5 )
            & ( V
              = ( F @ U2 ) ) ) ) ) ).

% RepFun_iff
thf(fact_41_hunion__hempty__left,axiom,
    ! [A5: hF_Mirabelle_hf] :
      ( ( sup_sup @ hF_Mirabelle_hf @ ( zero_zero @ hF_Mirabelle_hf ) @ A5 )
      = A5 ) ).

% hunion_hempty_left
thf(fact_42_hunion__hempty__right,axiom,
    ! [A5: hF_Mirabelle_hf] :
      ( ( sup_sup @ hF_Mirabelle_hf @ A5 @ ( zero_zero @ hF_Mirabelle_hf ) )
      = A5 ) ).

% hunion_hempty_right
thf(fact_43_HUnion__iff,axiom,
    ! [X: hF_Mirabelle_hf,A5: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hmem @ X @ ( hF_Mirabelle_HUnion @ A5 ) )
      = ( ? [Y3: hF_Mirabelle_hf] :
            ( ( hF_Mirabelle_hmem @ Y3 @ A5 )
            & ( hF_Mirabelle_hmem @ X @ Y3 ) ) ) ) ).

% HUnion_iff
thf(fact_44_mem__Collect__eq,axiom,
    ! [A: $tType,A2: A,P: A > $o] :
      ( ( member @ A @ A2 @ ( collect @ A @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_45_Collect__mem__eq,axiom,
    ! [A: $tType,A5: set @ A] :
      ( ( collect @ A
        @ ^ [X3: A] : ( member @ A @ X3 @ A5 ) )
      = A5 ) ).

% Collect_mem_eq
thf(fact_46_Collect__cong,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ! [X2: A] :
          ( ( P @ X2 )
          = ( Q @ X2 ) )
     => ( ( collect @ A @ P )
        = ( collect @ A @ Q ) ) ) ).

% Collect_cong
thf(fact_47_ext,axiom,
    ! [B6: $tType,A: $tType,F: A > B6,G: A > B6] :
      ( ! [X2: A] :
          ( ( F @ X2 )
          = ( G @ X2 ) )
     => ( F = G ) ) ).

% ext
thf(fact_48_hdiff__iff,axiom,
    ! [U: hF_Mirabelle_hf,X: hF_Mirabelle_hf,Y: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hmem @ U @ ( minus_minus @ hF_Mirabelle_hf @ X @ Y ) )
      = ( ( hF_Mirabelle_hmem @ U @ X )
        & ~ ( hF_Mirabelle_hmem @ U @ Y ) ) ) ).

% hdiff_iff
thf(fact_49_hinter__hempty__left,axiom,
    ! [A5: hF_Mirabelle_hf] :
      ( ( inf_inf @ hF_Mirabelle_hf @ ( zero_zero @ hF_Mirabelle_hf ) @ A5 )
      = ( zero_zero @ hF_Mirabelle_hf ) ) ).

% hinter_hempty_left
thf(fact_50_hinter__hempty__right,axiom,
    ! [A5: hF_Mirabelle_hf] :
      ( ( inf_inf @ hF_Mirabelle_hf @ A5 @ ( zero_zero @ hF_Mirabelle_hf ) )
      = ( zero_zero @ hF_Mirabelle_hf ) ) ).

% hinter_hempty_right
thf(fact_51_Replace__iff,axiom,
    ! [V: hF_Mirabelle_hf,A5: hF_Mirabelle_hf,R: hF_Mirabelle_hf > hF_Mirabelle_hf > $o] :
      ( ( hF_Mirabelle_hmem @ V @ ( hF_Mirabelle_Replace @ A5 @ R ) )
      = ( ? [U2: hF_Mirabelle_hf] :
            ( ( hF_Mirabelle_hmem @ U2 @ A5 )
            & ( R @ U2 @ V )
            & ! [Y3: hF_Mirabelle_hf] :
                ( ( R @ U2 @ Y3 )
               => ( Y3 = V ) ) ) ) ) ).

% Replace_iff
thf(fact_52_hdiff__zero,axiom,
    ! [X: hF_Mirabelle_hf] :
      ( ( minus_minus @ hF_Mirabelle_hf @ X @ ( zero_zero @ hF_Mirabelle_hf ) )
      = X ) ).

% hdiff_zero
thf(fact_53_zero__hdiff,axiom,
    ! [X: hF_Mirabelle_hf] :
      ( ( minus_minus @ hF_Mirabelle_hf @ ( zero_zero @ hF_Mirabelle_hf ) @ X )
      = ( zero_zero @ hF_Mirabelle_hf ) ) ).

% zero_hdiff
thf(fact_54_RepFun__hunion,axiom,
    ! [A5: hF_Mirabelle_hf,B4: hF_Mirabelle_hf,F: hF_Mirabelle_hf > hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_RepFun @ ( sup_sup @ hF_Mirabelle_hf @ A5 @ B4 ) @ F )
      = ( sup_sup @ hF_Mirabelle_hf @ ( hF_Mirabelle_RepFun @ A5 @ F ) @ ( hF_Mirabelle_RepFun @ B4 @ F ) ) ) ).

% RepFun_hunion
thf(fact_55_HUnion__hunion,axiom,
    ! [A5: hF_Mirabelle_hf,B4: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_HUnion @ ( sup_sup @ hF_Mirabelle_hf @ A5 @ B4 ) )
      = ( sup_sup @ hF_Mirabelle_hf @ ( hF_Mirabelle_HUnion @ A5 ) @ ( hF_Mirabelle_HUnion @ B4 ) ) ) ).

% HUnion_hunion
thf(fact_56_diff__eq__diff__eq,axiom,
    ! [A: $tType] :
      ( ( group_add @ A )
     => ! [A2: A,B: A,C: A,D: A] :
          ( ( ( minus_minus @ A @ A2 @ B )
            = ( minus_minus @ A @ C @ D ) )
         => ( ( A2 = B )
            = ( C = D ) ) ) ) ).

% diff_eq_diff_eq
thf(fact_57_diff__right__commute,axiom,
    ! [A: $tType] :
      ( ( cancel146912293up_add @ A )
     => ! [A2: A,C: A,B: A] :
          ( ( minus_minus @ A @ ( minus_minus @ A @ A2 @ C ) @ B )
          = ( minus_minus @ A @ ( minus_minus @ A @ A2 @ B ) @ C ) ) ) ).

% diff_right_commute
thf(fact_58_replacement__fun,axiom,
    ! [X: hF_Mirabelle_hf,F: hF_Mirabelle_hf > hF_Mirabelle_hf] :
    ? [Z2: hF_Mirabelle_hf] :
    ! [V2: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hmem @ V2 @ Z2 )
      = ( ? [U2: hF_Mirabelle_hf] :
            ( ( hF_Mirabelle_hmem @ U2 @ X )
            & ( V2
              = ( F @ U2 ) ) ) ) ) ).

% replacement_fun
thf(fact_59_hmem__not__refl,axiom,
    ! [X: hF_Mirabelle_hf] :
      ~ ( hF_Mirabelle_hmem @ X @ X ) ).

% hmem_not_refl
thf(fact_60_comprehension,axiom,
    ! [X: hF_Mirabelle_hf,P: hF_Mirabelle_hf > $o] :
    ? [Z2: hF_Mirabelle_hf] :
    ! [U3: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hmem @ U3 @ Z2 )
      = ( ( hF_Mirabelle_hmem @ U3 @ X )
        & ( P @ U3 ) ) ) ).

% comprehension
thf(fact_61_union__of__set,axiom,
    ! [X: hF_Mirabelle_hf] :
    ? [Z2: hF_Mirabelle_hf] :
    ! [U3: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hmem @ U3 @ Z2 )
      = ( ? [Y3: hF_Mirabelle_hf] :
            ( ( hF_Mirabelle_hmem @ Y3 @ X )
            & ( hF_Mirabelle_hmem @ U3 @ Y3 ) ) ) ) ).

% union_of_set
thf(fact_62_hmem__not__sym,axiom,
    ! [X: hF_Mirabelle_hf,Y: hF_Mirabelle_hf] :
      ~ ( ( hF_Mirabelle_hmem @ X @ Y )
        & ( hF_Mirabelle_hmem @ Y @ X ) ) ).

% hmem_not_sym
thf(fact_63_binary__union,axiom,
    ! [X: hF_Mirabelle_hf,Y: hF_Mirabelle_hf] :
    ? [Z2: hF_Mirabelle_hf] :
    ! [U3: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hmem @ U3 @ Z2 )
      = ( ( hF_Mirabelle_hmem @ U3 @ X )
        | ( hF_Mirabelle_hmem @ U3 @ Y ) ) ) ).

% binary_union
thf(fact_64_replacement,axiom,
    ! [X: hF_Mirabelle_hf,R: hF_Mirabelle_hf > hF_Mirabelle_hf > $o] :
      ( ! [U4: hF_Mirabelle_hf,V3: hF_Mirabelle_hf,V4: hF_Mirabelle_hf] :
          ( ( hF_Mirabelle_hmem @ U4 @ X )
         => ( ( R @ U4 @ V3 )
           => ( ( R @ U4 @ V4 )
             => ( V4 = V3 ) ) ) )
     => ? [Z2: hF_Mirabelle_hf] :
        ! [V2: hF_Mirabelle_hf] :
          ( ( hF_Mirabelle_hmem @ V2 @ Z2 )
          = ( ? [U2: hF_Mirabelle_hf] :
                ( ( hF_Mirabelle_hmem @ U2 @ X )
                & ( R @ U2 @ V2 ) ) ) ) ) ).

% replacement
thf(fact_65_hmem__ne,axiom,
    ! [X: hF_Mirabelle_hf,Y: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hmem @ X @ Y )
     => ( X != Y ) ) ).

% hmem_ne
thf(fact_66_hf__ext,axiom,
    ( ( ^ [Y4: hF_Mirabelle_hf,Z3: hF_Mirabelle_hf] : Y4 = Z3 )
    = ( ^ [A4: hF_Mirabelle_hf,B3: hF_Mirabelle_hf] :
        ! [X3: hF_Mirabelle_hf] :
          ( ( hF_Mirabelle_hmem @ X3 @ A4 )
          = ( hF_Mirabelle_hmem @ X3 @ B3 ) ) ) ) ).

% hf_ext
thf(fact_67_hinter__hinsert__right,axiom,
    ! [X: hF_Mirabelle_hf,B4: hF_Mirabelle_hf,A5: hF_Mirabelle_hf] :
      ( ( ( hF_Mirabelle_hmem @ X @ B4 )
       => ( ( inf_inf @ hF_Mirabelle_hf @ B4 @ ( hF_Mirabelle_hinsert @ X @ A5 ) )
          = ( hF_Mirabelle_hinsert @ X @ ( inf_inf @ hF_Mirabelle_hf @ B4 @ A5 ) ) ) )
      & ( ~ ( hF_Mirabelle_hmem @ X @ B4 )
       => ( ( inf_inf @ hF_Mirabelle_hf @ B4 @ ( hF_Mirabelle_hinsert @ X @ A5 ) )
          = ( inf_inf @ hF_Mirabelle_hf @ B4 @ A5 ) ) ) ) ).

% hinter_hinsert_right
thf(fact_68_hinter__hinsert__left,axiom,
    ! [X: hF_Mirabelle_hf,B4: hF_Mirabelle_hf,A5: hF_Mirabelle_hf] :
      ( ( ( hF_Mirabelle_hmem @ X @ B4 )
       => ( ( inf_inf @ hF_Mirabelle_hf @ ( hF_Mirabelle_hinsert @ X @ A5 ) @ B4 )
          = ( hF_Mirabelle_hinsert @ X @ ( inf_inf @ hF_Mirabelle_hf @ A5 @ B4 ) ) ) )
      & ( ~ ( hF_Mirabelle_hmem @ X @ B4 )
       => ( ( inf_inf @ hF_Mirabelle_hf @ ( hF_Mirabelle_hinsert @ X @ A5 ) @ B4 )
          = ( inf_inf @ hF_Mirabelle_hf @ A5 @ B4 ) ) ) ) ).

% hinter_hinsert_left
thf(fact_69_foundation,axiom,
    ! [Z: hF_Mirabelle_hf] :
      ( ( Z
       != ( zero_zero @ hF_Mirabelle_hf ) )
     => ? [W: hF_Mirabelle_hf] :
          ( ( hF_Mirabelle_hmem @ W @ Z )
          & ( ( inf_inf @ hF_Mirabelle_hf @ W @ Z )
            = ( zero_zero @ hF_Mirabelle_hf ) ) ) ) ).

% foundation
thf(fact_70_hinsert__hdiff__if,axiom,
    ! [X: hF_Mirabelle_hf,B4: hF_Mirabelle_hf,A5: hF_Mirabelle_hf] :
      ( ( ( hF_Mirabelle_hmem @ X @ B4 )
       => ( ( minus_minus @ hF_Mirabelle_hf @ ( hF_Mirabelle_hinsert @ X @ A5 ) @ B4 )
          = ( minus_minus @ hF_Mirabelle_hf @ A5 @ B4 ) ) )
      & ( ~ ( hF_Mirabelle_hmem @ X @ B4 )
       => ( ( minus_minus @ hF_Mirabelle_hf @ ( hF_Mirabelle_hinsert @ X @ A5 ) @ B4 )
          = ( hF_Mirabelle_hinsert @ X @ ( minus_minus @ hF_Mirabelle_hf @ A5 @ B4 ) ) ) ) ) ).

% hinsert_hdiff_if
thf(fact_71_eq__iff__diff__eq__0,axiom,
    ! [A: $tType] :
      ( ( group_add @ A )
     => ( ( ^ [Y4: A,Z3: A] : Y4 = Z3 )
        = ( ^ [A4: A,B3: A] :
              ( ( minus_minus @ A @ A4 @ B3 )
              = ( zero_zero @ A ) ) ) ) ) ).

% eq_iff_diff_eq_0
thf(fact_72_hinsert__iff,axiom,
    ! [Z: hF_Mirabelle_hf,Y: hF_Mirabelle_hf,X: hF_Mirabelle_hf] :
      ( ( Z
        = ( hF_Mirabelle_hinsert @ Y @ X ) )
      = ( ! [U2: hF_Mirabelle_hf] :
            ( ( hF_Mirabelle_hmem @ U2 @ Z )
            = ( ( hF_Mirabelle_hmem @ U2 @ X )
              | ( U2 = Y ) ) ) ) ) ).

% hinsert_iff
thf(fact_73_hemptyE,axiom,
    ! [A2: hF_Mirabelle_hf] :
      ~ ( hF_Mirabelle_hmem @ A2 @ ( zero_zero @ hF_Mirabelle_hf ) ) ).

% hemptyE
thf(fact_74_hempty__iff,axiom,
    ! [Z: hF_Mirabelle_hf] :
      ( ( Z
        = ( zero_zero @ hF_Mirabelle_hf ) )
      = ( ! [X3: hF_Mirabelle_hf] :
            ~ ( hF_Mirabelle_hmem @ X3 @ Z ) ) ) ).

% hempty_iff
thf(fact_75_hmem__hempty,axiom,
    ! [A2: hF_Mirabelle_hf] :
      ~ ( hF_Mirabelle_hmem @ A2 @ ( zero_zero @ hF_Mirabelle_hf ) ) ).

% hmem_hempty
thf(fact_76_hunion__hinsert__right,axiom,
    ! [B4: hF_Mirabelle_hf,X: hF_Mirabelle_hf,A5: hF_Mirabelle_hf] :
      ( ( sup_sup @ hF_Mirabelle_hf @ B4 @ ( hF_Mirabelle_hinsert @ X @ A5 ) )
      = ( hF_Mirabelle_hinsert @ X @ ( sup_sup @ hF_Mirabelle_hf @ B4 @ A5 ) ) ) ).

% hunion_hinsert_right
thf(fact_77_hunion__hinsert__left,axiom,
    ! [X: hF_Mirabelle_hf,A5: hF_Mirabelle_hf,B4: hF_Mirabelle_hf] :
      ( ( sup_sup @ hF_Mirabelle_hf @ ( hF_Mirabelle_hinsert @ X @ A5 ) @ B4 )
      = ( hF_Mirabelle_hinsert @ X @ ( sup_sup @ hF_Mirabelle_hf @ A5 @ B4 ) ) ) ).

% hunion_hinsert_left
thf(fact_78_RepFun__cong,axiom,
    ! [A5: hF_Mirabelle_hf,B4: hF_Mirabelle_hf,F: hF_Mirabelle_hf > hF_Mirabelle_hf,G: hF_Mirabelle_hf > hF_Mirabelle_hf] :
      ( ( A5 = B4 )
     => ( ! [X2: hF_Mirabelle_hf] :
            ( ( hF_Mirabelle_hmem @ X2 @ B4 )
           => ( ( F @ X2 )
              = ( G @ X2 ) ) )
       => ( ( hF_Mirabelle_RepFun @ A5 @ F )
          = ( hF_Mirabelle_RepFun @ B4 @ G ) ) ) ) ).

% RepFun_cong
thf(fact_79_hmem__Sup__ne,axiom,
    ! [X: hF_Mirabelle_hf,Y: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hmem @ X @ Y )
     => ( ( hF_Mirabelle_HUnion @ X )
       != Y ) ) ).

% hmem_Sup_ne
thf(fact_80_Replace__cong,axiom,
    ! [A5: hF_Mirabelle_hf,B4: hF_Mirabelle_hf,P: hF_Mirabelle_hf > hF_Mirabelle_hf > $o,Q: hF_Mirabelle_hf > hF_Mirabelle_hf > $o] :
      ( ( A5 = B4 )
     => ( ! [X2: hF_Mirabelle_hf,Y2: hF_Mirabelle_hf] :
            ( ( hF_Mirabelle_hmem @ X2 @ B4 )
           => ( ( P @ X2 @ Y2 )
              = ( Q @ X2 @ Y2 ) ) )
       => ( ( hF_Mirabelle_Replace @ A5 @ P )
          = ( hF_Mirabelle_Replace @ B4 @ Q ) ) ) ) ).

% Replace_cong
thf(fact_81_sup__inf__absorb,axiom,
    ! [A: $tType] :
      ( ( lattice @ A )
     => ! [X: A,Y: A] :
          ( ( sup_sup @ A @ X @ ( inf_inf @ A @ X @ Y ) )
          = X ) ) ).

% sup_inf_absorb
thf(fact_82_inf__sup__absorb,axiom,
    ! [A: $tType] :
      ( ( lattice @ A )
     => ! [X: A,Y: A] :
          ( ( inf_inf @ A @ X @ ( sup_sup @ A @ X @ Y ) )
          = X ) ) ).

% inf_sup_absorb
thf(fact_83_sup_Oright__idem,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [A2: A,B: A] :
          ( ( sup_sup @ A @ ( sup_sup @ A @ A2 @ B ) @ B )
          = ( sup_sup @ A @ A2 @ B ) ) ) ).

% sup.right_idem
thf(fact_84_sup__left__idem,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [X: A,Y: A] :
          ( ( sup_sup @ A @ X @ ( sup_sup @ A @ X @ Y ) )
          = ( sup_sup @ A @ X @ Y ) ) ) ).

% sup_left_idem
thf(fact_85_sup_Oleft__idem,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [A2: A,B: A] :
          ( ( sup_sup @ A @ A2 @ ( sup_sup @ A @ A2 @ B ) )
          = ( sup_sup @ A @ A2 @ B ) ) ) ).

% sup.left_idem
thf(fact_86_sup__idem,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [X: A] :
          ( ( sup_sup @ A @ X @ X )
          = X ) ) ).

% sup_idem
thf(fact_87_sup_Oidem,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [A2: A] :
          ( ( sup_sup @ A @ A2 @ A2 )
          = A2 ) ) ).

% sup.idem
thf(fact_88_sup__apply,axiom,
    ! [B6: $tType,A: $tType] :
      ( ( semilattice_sup @ B6 )
     => ( ( sup_sup @ ( A > B6 ) )
        = ( ^ [F2: A > B6,G2: A > B6,X3: A] : ( sup_sup @ B6 @ ( F2 @ X3 ) @ ( G2 @ X3 ) ) ) ) ) ).

% sup_apply
thf(fact_89_inf__right__idem,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [X: A,Y: A] :
          ( ( inf_inf @ A @ ( inf_inf @ A @ X @ Y ) @ Y )
          = ( inf_inf @ A @ X @ Y ) ) ) ).

% inf_right_idem
thf(fact_90_minus__apply,axiom,
    ! [B6: $tType,A: $tType] :
      ( ( minus @ B6 )
     => ( ( minus_minus @ ( A > B6 ) )
        = ( ^ [A7: A > B6,B7: A > B6,X3: A] : ( minus_minus @ B6 @ ( A7 @ X3 ) @ ( B7 @ X3 ) ) ) ) ) ).

% minus_apply
thf(fact_91_inf__apply,axiom,
    ! [B6: $tType,A: $tType] :
      ( ( semilattice_inf @ B6 )
     => ( ( inf_inf @ ( A > B6 ) )
        = ( ^ [F2: A > B6,G2: A > B6,X3: A] : ( inf_inf @ B6 @ ( F2 @ X3 ) @ ( G2 @ X3 ) ) ) ) ) ).

% inf_apply
thf(fact_92_inf_Oidem,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [A2: A] :
          ( ( inf_inf @ A @ A2 @ A2 )
          = A2 ) ) ).

% inf.idem
thf(fact_93_inf__idem,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [X: A] :
          ( ( inf_inf @ A @ X @ X )
          = X ) ) ).

% inf_idem
thf(fact_94_inf_Oleft__idem,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [A2: A,B: A] :
          ( ( inf_inf @ A @ A2 @ ( inf_inf @ A @ A2 @ B ) )
          = ( inf_inf @ A @ A2 @ B ) ) ) ).

% inf.left_idem
thf(fact_95_inf__left__idem,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [X: A,Y: A] :
          ( ( inf_inf @ A @ X @ ( inf_inf @ A @ X @ Y ) )
          = ( inf_inf @ A @ X @ Y ) ) ) ).

% inf_left_idem
thf(fact_96_inf_Oright__idem,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [A2: A,B: A] :
          ( ( inf_inf @ A @ ( inf_inf @ A @ A2 @ B ) @ B )
          = ( inf_inf @ A @ A2 @ B ) ) ) ).

% inf.right_idem
thf(fact_97_fun__diff__def,axiom,
    ! [B6: $tType,A: $tType] :
      ( ( minus @ B6 )
     => ( ( minus_minus @ ( A > B6 ) )
        = ( ^ [A7: A > B6,B7: A > B6,X3: A] : ( minus_minus @ B6 @ ( A7 @ X3 ) @ ( B7 @ X3 ) ) ) ) ) ).

% fun_diff_def
thf(fact_98_inf__sup__aci_I4_J,axiom,
    ! [A: $tType] :
      ( ( lattice @ A )
     => ! [X: A,Y: A] :
          ( ( inf_inf @ A @ X @ ( inf_inf @ A @ X @ Y ) )
          = ( inf_inf @ A @ X @ Y ) ) ) ).

% inf_sup_aci(4)
thf(fact_99_inf__sup__aci_I3_J,axiom,
    ! [A: $tType] :
      ( ( lattice @ A )
     => ! [X: A,Y: A,Z: A] :
          ( ( inf_inf @ A @ X @ ( inf_inf @ A @ Y @ Z ) )
          = ( inf_inf @ A @ Y @ ( inf_inf @ A @ X @ Z ) ) ) ) ).

% inf_sup_aci(3)
thf(fact_100_inf__sup__aci_I2_J,axiom,
    ! [A: $tType] :
      ( ( lattice @ A )
     => ! [X: A,Y: A,Z: A] :
          ( ( inf_inf @ A @ ( inf_inf @ A @ X @ Y ) @ Z )
          = ( inf_inf @ A @ X @ ( inf_inf @ A @ Y @ Z ) ) ) ) ).

% inf_sup_aci(2)
thf(fact_101_inf__sup__aci_I1_J,axiom,
    ! [A: $tType] :
      ( ( lattice @ A )
     => ( ( inf_inf @ A )
        = ( ^ [X3: A,Y3: A] : ( inf_inf @ A @ Y3 @ X3 ) ) ) ) ).

% inf_sup_aci(1)
thf(fact_102_inf__fun__def,axiom,
    ! [B6: $tType,A: $tType] :
      ( ( semilattice_inf @ B6 )
     => ( ( inf_inf @ ( A > B6 ) )
        = ( ^ [F2: A > B6,G2: A > B6,X3: A] : ( inf_inf @ B6 @ ( F2 @ X3 ) @ ( G2 @ X3 ) ) ) ) ) ).

% inf_fun_def
thf(fact_103_boolean__algebra__cancel_Oinf1,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [A5: A,K: A,A2: A,B: A] :
          ( ( A5
            = ( inf_inf @ A @ K @ A2 ) )
         => ( ( inf_inf @ A @ A5 @ B )
            = ( inf_inf @ A @ K @ ( inf_inf @ A @ A2 @ B ) ) ) ) ) ).

% boolean_algebra_cancel.inf1
thf(fact_104_boolean__algebra__cancel_Oinf2,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [B4: A,K: A,B: A,A2: A] :
          ( ( B4
            = ( inf_inf @ A @ K @ B ) )
         => ( ( inf_inf @ A @ A2 @ B4 )
            = ( inf_inf @ A @ K @ ( inf_inf @ A @ A2 @ B ) ) ) ) ) ).

% boolean_algebra_cancel.inf2
thf(fact_105_inf_Oassoc,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [A2: A,B: A,C: A] :
          ( ( inf_inf @ A @ ( inf_inf @ A @ A2 @ B ) @ C )
          = ( inf_inf @ A @ A2 @ ( inf_inf @ A @ B @ C ) ) ) ) ).

% inf.assoc
thf(fact_106_inf__assoc,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [X: A,Y: A,Z: A] :
          ( ( inf_inf @ A @ ( inf_inf @ A @ X @ Y ) @ Z )
          = ( inf_inf @ A @ X @ ( inf_inf @ A @ Y @ Z ) ) ) ) ).

% inf_assoc
thf(fact_107_inf_Ocommute,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ( ( inf_inf @ A )
        = ( ^ [A4: A,B3: A] : ( inf_inf @ A @ B3 @ A4 ) ) ) ) ).

% inf.commute
thf(fact_108_inf__commute,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ( ( inf_inf @ A )
        = ( ^ [X3: A,Y3: A] : ( inf_inf @ A @ Y3 @ X3 ) ) ) ) ).

% inf_commute
thf(fact_109_inf_Oleft__commute,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [B: A,A2: A,C: A] :
          ( ( inf_inf @ A @ B @ ( inf_inf @ A @ A2 @ C ) )
          = ( inf_inf @ A @ A2 @ ( inf_inf @ A @ B @ C ) ) ) ) ).

% inf.left_commute
thf(fact_110_inf__left__commute,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [X: A,Y: A,Z: A] :
          ( ( inf_inf @ A @ X @ ( inf_inf @ A @ Y @ Z ) )
          = ( inf_inf @ A @ Y @ ( inf_inf @ A @ X @ Z ) ) ) ) ).

% inf_left_commute
thf(fact_111_inf__sup__aci_I8_J,axiom,
    ! [A: $tType] :
      ( ( lattice @ A )
     => ! [X: A,Y: A] :
          ( ( sup_sup @ A @ X @ ( sup_sup @ A @ X @ Y ) )
          = ( sup_sup @ A @ X @ Y ) ) ) ).

% inf_sup_aci(8)
thf(fact_112_inf__sup__aci_I7_J,axiom,
    ! [A: $tType] :
      ( ( lattice @ A )
     => ! [X: A,Y: A,Z: A] :
          ( ( sup_sup @ A @ X @ ( sup_sup @ A @ Y @ Z ) )
          = ( sup_sup @ A @ Y @ ( sup_sup @ A @ X @ Z ) ) ) ) ).

% inf_sup_aci(7)
thf(fact_113_inf__sup__aci_I6_J,axiom,
    ! [A: $tType] :
      ( ( lattice @ A )
     => ! [X: A,Y: A,Z: A] :
          ( ( sup_sup @ A @ ( sup_sup @ A @ X @ Y ) @ Z )
          = ( sup_sup @ A @ X @ ( sup_sup @ A @ Y @ Z ) ) ) ) ).

% inf_sup_aci(6)
thf(fact_114_inf__sup__aci_I5_J,axiom,
    ! [A: $tType] :
      ( ( lattice @ A )
     => ( ( sup_sup @ A )
        = ( ^ [X3: A,Y3: A] : ( sup_sup @ A @ Y3 @ X3 ) ) ) ) ).

% inf_sup_aci(5)
thf(fact_115_sup__fun__def,axiom,
    ! [B6: $tType,A: $tType] :
      ( ( semilattice_sup @ B6 )
     => ( ( sup_sup @ ( A > B6 ) )
        = ( ^ [F2: A > B6,G2: A > B6,X3: A] : ( sup_sup @ B6 @ ( F2 @ X3 ) @ ( G2 @ X3 ) ) ) ) ) ).

% sup_fun_def
thf(fact_116_boolean__algebra__cancel_Osup1,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [A5: A,K: A,A2: A,B: A] :
          ( ( A5
            = ( sup_sup @ A @ K @ A2 ) )
         => ( ( sup_sup @ A @ A5 @ B )
            = ( sup_sup @ A @ K @ ( sup_sup @ A @ A2 @ B ) ) ) ) ) ).

% boolean_algebra_cancel.sup1
thf(fact_117_boolean__algebra__cancel_Osup2,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [B4: A,K: A,B: A,A2: A] :
          ( ( B4
            = ( sup_sup @ A @ K @ B ) )
         => ( ( sup_sup @ A @ A2 @ B4 )
            = ( sup_sup @ A @ K @ ( sup_sup @ A @ A2 @ B ) ) ) ) ) ).

% boolean_algebra_cancel.sup2
thf(fact_118_sup_Oassoc,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [A2: A,B: A,C: A] :
          ( ( sup_sup @ A @ ( sup_sup @ A @ A2 @ B ) @ C )
          = ( sup_sup @ A @ A2 @ ( sup_sup @ A @ B @ C ) ) ) ) ).

% sup.assoc
thf(fact_119_sup__assoc,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [X: A,Y: A,Z: A] :
          ( ( sup_sup @ A @ ( sup_sup @ A @ X @ Y ) @ Z )
          = ( sup_sup @ A @ X @ ( sup_sup @ A @ Y @ Z ) ) ) ) ).

% sup_assoc
thf(fact_120_sup_Ocommute,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ( ( sup_sup @ A )
        = ( ^ [A4: A,B3: A] : ( sup_sup @ A @ B3 @ A4 ) ) ) ) ).

% sup.commute
thf(fact_121_sup__commute,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ( ( sup_sup @ A )
        = ( ^ [X3: A,Y3: A] : ( sup_sup @ A @ Y3 @ X3 ) ) ) ) ).

% sup_commute
thf(fact_122_sup_Oleft__commute,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [B: A,A2: A,C: A] :
          ( ( sup_sup @ A @ B @ ( sup_sup @ A @ A2 @ C ) )
          = ( sup_sup @ A @ A2 @ ( sup_sup @ A @ B @ C ) ) ) ) ).

% sup.left_commute
thf(fact_123_sup__left__commute,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [X: A,Y: A,Z: A] :
          ( ( sup_sup @ A @ X @ ( sup_sup @ A @ Y @ Z ) )
          = ( sup_sup @ A @ Y @ ( sup_sup @ A @ X @ Z ) ) ) ) ).

% sup_left_commute
thf(fact_124_distrib__imp1,axiom,
    ! [A: $tType] :
      ( ( lattice @ A )
     => ! [X: A,Y: A,Z: A] :
          ( ! [X2: A,Y2: A,Z2: A] :
              ( ( inf_inf @ A @ X2 @ ( sup_sup @ A @ Y2 @ Z2 ) )
              = ( sup_sup @ A @ ( inf_inf @ A @ X2 @ Y2 ) @ ( inf_inf @ A @ X2 @ Z2 ) ) )
         => ( ( sup_sup @ A @ X @ ( inf_inf @ A @ Y @ Z ) )
            = ( inf_inf @ A @ ( sup_sup @ A @ X @ Y ) @ ( sup_sup @ A @ X @ Z ) ) ) ) ) ).

% distrib_imp1
thf(fact_125_distrib__imp2,axiom,
    ! [A: $tType] :
      ( ( lattice @ A )
     => ! [X: A,Y: A,Z: A] :
          ( ! [X2: A,Y2: A,Z2: A] :
              ( ( sup_sup @ A @ X2 @ ( inf_inf @ A @ Y2 @ Z2 ) )
              = ( inf_inf @ A @ ( sup_sup @ A @ X2 @ Y2 ) @ ( sup_sup @ A @ X2 @ Z2 ) ) )
         => ( ( inf_inf @ A @ X @ ( sup_sup @ A @ Y @ Z ) )
            = ( sup_sup @ A @ ( inf_inf @ A @ X @ Y ) @ ( inf_inf @ A @ X @ Z ) ) ) ) ) ).

% distrib_imp2
thf(fact_126_inf__sup__distrib1,axiom,
    ! [A: $tType] :
      ( ( distrib_lattice @ A )
     => ! [X: A,Y: A,Z: A] :
          ( ( inf_inf @ A @ X @ ( sup_sup @ A @ Y @ Z ) )
          = ( sup_sup @ A @ ( inf_inf @ A @ X @ Y ) @ ( inf_inf @ A @ X @ Z ) ) ) ) ).

% inf_sup_distrib1
thf(fact_127_inf__sup__distrib2,axiom,
    ! [A: $tType] :
      ( ( distrib_lattice @ A )
     => ! [Y: A,Z: A,X: A] :
          ( ( inf_inf @ A @ ( sup_sup @ A @ Y @ Z ) @ X )
          = ( sup_sup @ A @ ( inf_inf @ A @ Y @ X ) @ ( inf_inf @ A @ Z @ X ) ) ) ) ).

% inf_sup_distrib2
thf(fact_128_sup__inf__distrib1,axiom,
    ! [A: $tType] :
      ( ( distrib_lattice @ A )
     => ! [X: A,Y: A,Z: A] :
          ( ( sup_sup @ A @ X @ ( inf_inf @ A @ Y @ Z ) )
          = ( inf_inf @ A @ ( sup_sup @ A @ X @ Y ) @ ( sup_sup @ A @ X @ Z ) ) ) ) ).

% sup_inf_distrib1
thf(fact_129_sup__inf__distrib2,axiom,
    ! [A: $tType] :
      ( ( distrib_lattice @ A )
     => ! [Y: A,Z: A,X: A] :
          ( ( sup_sup @ A @ ( inf_inf @ A @ Y @ Z ) @ X )
          = ( inf_inf @ A @ ( sup_sup @ A @ Y @ X ) @ ( sup_sup @ A @ Z @ X ) ) ) ) ).

% sup_inf_distrib2
thf(fact_130_diff__self__eq__0,axiom,
    ! [M: nat] :
      ( ( minus_minus @ nat @ M @ M )
      = ( zero_zero @ nat ) ) ).

% diff_self_eq_0
thf(fact_131_diff__0__eq__0,axiom,
    ! [N: nat] :
      ( ( minus_minus @ nat @ ( zero_zero @ nat ) @ N )
      = ( zero_zero @ nat ) ) ).

% diff_0_eq_0
thf(fact_132_PrimReplace__iff,axiom,
    ! [A5: hF_Mirabelle_hf,R: hF_Mirabelle_hf > hF_Mirabelle_hf > $o,V: hF_Mirabelle_hf] :
      ( ! [U4: hF_Mirabelle_hf,V3: hF_Mirabelle_hf,V4: hF_Mirabelle_hf] :
          ( ( hF_Mirabelle_hmem @ U4 @ A5 )
         => ( ( R @ U4 @ V3 )
           => ( ( R @ U4 @ V4 )
             => ( V4 = V3 ) ) ) )
     => ( ( hF_Mirabelle_hmem @ V @ ( hF_Mir569462966eplace @ A5 @ R ) )
        = ( ? [U2: hF_Mirabelle_hf] :
              ( ( hF_Mirabelle_hmem @ U2 @ A5 )
              & ( R @ U2 @ V ) ) ) ) ) ).

% PrimReplace_iff
thf(fact_133_diffs0__imp__equal,axiom,
    ! [M: nat,N: nat] :
      ( ( ( minus_minus @ nat @ M @ N )
        = ( zero_zero @ nat ) )
     => ( ( ( minus_minus @ nat @ N @ M )
          = ( zero_zero @ nat ) )
       => ( M = N ) ) ) ).

% diffs0_imp_equal
thf(fact_134_minus__nat_Odiff__0,axiom,
    ! [M: nat] :
      ( ( minus_minus @ nat @ M @ ( zero_zero @ nat ) )
      = M ) ).

% minus_nat.diff_0
thf(fact_135_zero__natural_Orsp,axiom,
    ( ( zero_zero @ nat )
    = ( zero_zero @ nat ) ) ).

% zero_natural.rsp
thf(fact_136_diff__commute,axiom,
    ! [I: nat,J: nat,K: nat] :
      ( ( minus_minus @ nat @ ( minus_minus @ nat @ I @ J ) @ K )
      = ( minus_minus @ nat @ ( minus_minus @ nat @ I @ K ) @ J ) ) ).

% diff_commute
thf(fact_137_of__nat__aux_Osimps_I1_J,axiom,
    ! [A: $tType] :
      ( ( semiring_1 @ A )
     => ! [Inc: A > A,I: A] :
          ( ( semiri532925092at_aux @ A @ Inc @ ( zero_zero @ nat ) @ I )
          = I ) ) ).

% of_nat_aux.simps(1)
thf(fact_138_less__eq__insert1__iff,axiom,
    ! [X: hF_Mirabelle_hf,Y: hF_Mirabelle_hf,Z: hF_Mirabelle_hf] :
      ( ( ord_less_eq @ hF_Mirabelle_hf @ ( hF_Mirabelle_hinsert @ X @ Y ) @ Z )
      = ( ( hF_Mirabelle_hmem @ X @ Z )
        & ( ord_less_eq @ hF_Mirabelle_hf @ Y @ Z ) ) ) ).

% less_eq_insert1_iff
thf(fact_139_hmem__def,axiom,
    ( hF_Mirabelle_hmem
    = ( ^ [A4: hF_Mirabelle_hf,B3: hF_Mirabelle_hf] : ( member @ hF_Mirabelle_hf @ A4 @ ( hF_Mirabelle_hfset @ B3 ) ) ) ) ).

% hmem_def
thf(fact_140_diff__is__0__eq,axiom,
    ! [M: nat,N: nat] :
      ( ( ( minus_minus @ nat @ M @ N )
        = ( zero_zero @ nat ) )
      = ( ord_less_eq @ nat @ M @ N ) ) ).

% diff_is_0_eq
thf(fact_141_le__zero__eq,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A )
     => ! [N: A] :
          ( ( ord_less_eq @ A @ N @ ( zero_zero @ A ) )
          = ( N
            = ( zero_zero @ A ) ) ) ) ).

% le_zero_eq
thf(fact_142_inf_Obounded__iff,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [A2: A,B: A,C: A] :
          ( ( ord_less_eq @ A @ A2 @ ( inf_inf @ A @ B @ C ) )
          = ( ( ord_less_eq @ A @ A2 @ B )
            & ( ord_less_eq @ A @ A2 @ C ) ) ) ) ).

% inf.bounded_iff
thf(fact_143_le__inf__iff,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [X: A,Y: A,Z: A] :
          ( ( ord_less_eq @ A @ X @ ( inf_inf @ A @ Y @ Z ) )
          = ( ( ord_less_eq @ A @ X @ Y )
            & ( ord_less_eq @ A @ X @ Z ) ) ) ) ).

% le_inf_iff
thf(fact_144_sup_Obounded__iff,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [B: A,C: A,A2: A] :
          ( ( ord_less_eq @ A @ ( sup_sup @ A @ B @ C ) @ A2 )
          = ( ( ord_less_eq @ A @ B @ A2 )
            & ( ord_less_eq @ A @ C @ A2 ) ) ) ) ).

% sup.bounded_iff
thf(fact_145_le__sup__iff,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [X: A,Y: A,Z: A] :
          ( ( ord_less_eq @ A @ ( sup_sup @ A @ X @ Y ) @ Z )
          = ( ( ord_less_eq @ A @ X @ Z )
            & ( ord_less_eq @ A @ Y @ Z ) ) ) ) ).

% le_sup_iff
thf(fact_146_bot__nat__0_Oextremum,axiom,
    ! [A2: nat] : ( ord_less_eq @ nat @ ( zero_zero @ nat ) @ A2 ) ).

% bot_nat_0.extremum
thf(fact_147_le0,axiom,
    ! [N: nat] : ( ord_less_eq @ nat @ ( zero_zero @ nat ) @ N ) ).

% le0
thf(fact_148_diff__diff__cancel,axiom,
    ! [I: nat,N: nat] :
      ( ( ord_less_eq @ nat @ I @ N )
     => ( ( minus_minus @ nat @ N @ ( minus_minus @ nat @ N @ I ) )
        = I ) ) ).

% diff_diff_cancel
thf(fact_149_hsubsetI,axiom,
    ! [A5: hF_Mirabelle_hf,B4: hF_Mirabelle_hf] :
      ( ! [X2: hF_Mirabelle_hf] :
          ( ( hF_Mirabelle_hmem @ X2 @ A5 )
         => ( hF_Mirabelle_hmem @ X2 @ B4 ) )
     => ( ord_less_eq @ hF_Mirabelle_hf @ A5 @ B4 ) ) ).

% hsubsetI
thf(fact_150_less__eq__hempty,axiom,
    ! [U: hF_Mirabelle_hf] :
      ( ( ord_less_eq @ hF_Mirabelle_hf @ U @ ( zero_zero @ hF_Mirabelle_hf ) )
      = ( U
        = ( zero_zero @ hF_Mirabelle_hf ) ) ) ).

% less_eq_hempty
thf(fact_151_diff__ge__0__iff__ge,axiom,
    ! [A: $tType] :
      ( ( ordered_ab_group_add @ A )
     => ! [A2: A,B: A] :
          ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( minus_minus @ A @ A2 @ B ) )
          = ( ord_less_eq @ A @ B @ A2 ) ) ) ).

% diff_ge_0_iff_ge
thf(fact_152_diff__is__0__eq_H,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq @ nat @ M @ N )
     => ( ( minus_minus @ nat @ M @ N )
        = ( zero_zero @ nat ) ) ) ).

% diff_is_0_eq'
thf(fact_153_diff__le__mono2,axiom,
    ! [M: nat,N: nat,L: nat] :
      ( ( ord_less_eq @ nat @ M @ N )
     => ( ord_less_eq @ nat @ ( minus_minus @ nat @ L @ N ) @ ( minus_minus @ nat @ L @ M ) ) ) ).

% diff_le_mono2
thf(fact_154_le__diff__iff_H,axiom,
    ! [A2: nat,C: nat,B: nat] :
      ( ( ord_less_eq @ nat @ A2 @ C )
     => ( ( ord_less_eq @ nat @ B @ C )
       => ( ( ord_less_eq @ nat @ ( minus_minus @ nat @ C @ A2 ) @ ( minus_minus @ nat @ C @ B ) )
          = ( ord_less_eq @ nat @ B @ A2 ) ) ) ) ).

% le_diff_iff'
thf(fact_155_diff__le__self,axiom,
    ! [M: nat,N: nat] : ( ord_less_eq @ nat @ ( minus_minus @ nat @ M @ N ) @ M ) ).

% diff_le_self
thf(fact_156_diff__le__mono,axiom,
    ! [M: nat,N: nat,L: nat] :
      ( ( ord_less_eq @ nat @ M @ N )
     => ( ord_less_eq @ nat @ ( minus_minus @ nat @ M @ L ) @ ( minus_minus @ nat @ N @ L ) ) ) ).

% diff_le_mono
thf(fact_157_Nat_Odiff__diff__eq,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_eq @ nat @ K @ M )
     => ( ( ord_less_eq @ nat @ K @ N )
       => ( ( minus_minus @ nat @ ( minus_minus @ nat @ M @ K ) @ ( minus_minus @ nat @ N @ K ) )
          = ( minus_minus @ nat @ M @ N ) ) ) ) ).

% Nat.diff_diff_eq
thf(fact_158_le__diff__iff,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_eq @ nat @ K @ M )
     => ( ( ord_less_eq @ nat @ K @ N )
       => ( ( ord_less_eq @ nat @ ( minus_minus @ nat @ M @ K ) @ ( minus_minus @ nat @ N @ K ) )
          = ( ord_less_eq @ nat @ M @ N ) ) ) ) ).

% le_diff_iff
thf(fact_159_eq__diff__iff,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_eq @ nat @ K @ M )
     => ( ( ord_less_eq @ nat @ K @ N )
       => ( ( ( minus_minus @ nat @ M @ K )
            = ( minus_minus @ nat @ N @ K ) )
          = ( M = N ) ) ) ) ).

% eq_diff_iff
thf(fact_160_bot__nat__0_Oextremum__uniqueI,axiom,
    ! [A2: nat] :
      ( ( ord_less_eq @ nat @ A2 @ ( zero_zero @ nat ) )
     => ( A2
        = ( zero_zero @ nat ) ) ) ).

% bot_nat_0.extremum_uniqueI
thf(fact_161_bot__nat__0_Oextremum__unique,axiom,
    ! [A2: nat] :
      ( ( ord_less_eq @ nat @ A2 @ ( zero_zero @ nat ) )
      = ( A2
        = ( zero_zero @ nat ) ) ) ).

% bot_nat_0.extremum_unique
thf(fact_162_le__0__eq,axiom,
    ! [N: nat] :
      ( ( ord_less_eq @ nat @ N @ ( zero_zero @ nat ) )
      = ( N
        = ( zero_zero @ nat ) ) ) ).

% le_0_eq
thf(fact_163_less__eq__nat_Osimps_I1_J,axiom,
    ! [N: nat] : ( ord_less_eq @ nat @ ( zero_zero @ nat ) @ N ) ).

% less_eq_nat.simps(1)
thf(fact_164_Nat_Oex__has__greatest__nat,axiom,
    ! [P: nat > $o,K: nat,B: nat] :
      ( ( P @ K )
     => ( ! [Y2: nat] :
            ( ( P @ Y2 )
           => ( ord_less_eq @ nat @ Y2 @ B ) )
       => ? [X2: nat] :
            ( ( P @ X2 )
            & ! [Y5: nat] :
                ( ( P @ Y5 )
               => ( ord_less_eq @ nat @ Y5 @ X2 ) ) ) ) ) ).

% Nat.ex_has_greatest_nat
thf(fact_165_nat__le__linear,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq @ nat @ M @ N )
      | ( ord_less_eq @ nat @ N @ M ) ) ).

% nat_le_linear
thf(fact_166_le__antisym,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq @ nat @ M @ N )
     => ( ( ord_less_eq @ nat @ N @ M )
       => ( M = N ) ) ) ).

% le_antisym
thf(fact_167_eq__imp__le,axiom,
    ! [M: nat,N: nat] :
      ( ( M = N )
     => ( ord_less_eq @ nat @ M @ N ) ) ).

% eq_imp_le
thf(fact_168_le__trans,axiom,
    ! [I: nat,J: nat,K: nat] :
      ( ( ord_less_eq @ nat @ I @ J )
     => ( ( ord_less_eq @ nat @ J @ K )
       => ( ord_less_eq @ nat @ I @ K ) ) ) ).

% le_trans
thf(fact_169_le__refl,axiom,
    ! [N: nat] : ( ord_less_eq @ nat @ N @ N ) ).

% le_refl
thf(fact_170_canonically__ordered__monoid__add__class_Ozero__le,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A )
     => ! [X: A] : ( ord_less_eq @ A @ ( zero_zero @ A ) @ X ) ) ).

% canonically_ordered_monoid_add_class.zero_le
thf(fact_171_diff__mono,axiom,
    ! [A: $tType] :
      ( ( ordered_ab_group_add @ A )
     => ! [A2: A,B: A,D: A,C: A] :
          ( ( ord_less_eq @ A @ A2 @ B )
         => ( ( ord_less_eq @ A @ D @ C )
           => ( ord_less_eq @ A @ ( minus_minus @ A @ A2 @ C ) @ ( minus_minus @ A @ B @ D ) ) ) ) ) ).

% diff_mono
thf(fact_172_diff__left__mono,axiom,
    ! [A: $tType] :
      ( ( ordered_ab_group_add @ A )
     => ! [B: A,A2: A,C: A] :
          ( ( ord_less_eq @ A @ B @ A2 )
         => ( ord_less_eq @ A @ ( minus_minus @ A @ C @ A2 ) @ ( minus_minus @ A @ C @ B ) ) ) ) ).

% diff_left_mono
thf(fact_173_diff__right__mono,axiom,
    ! [A: $tType] :
      ( ( ordered_ab_group_add @ A )
     => ! [A2: A,B: A,C: A] :
          ( ( ord_less_eq @ A @ A2 @ B )
         => ( ord_less_eq @ A @ ( minus_minus @ A @ A2 @ C ) @ ( minus_minus @ A @ B @ C ) ) ) ) ).

% diff_right_mono
thf(fact_174_diff__eq__diff__less__eq,axiom,
    ! [A: $tType] :
      ( ( ordered_ab_group_add @ A )
     => ! [A2: A,B: A,C: A,D: A] :
          ( ( ( minus_minus @ A @ A2 @ B )
            = ( minus_minus @ A @ C @ D ) )
         => ( ( ord_less_eq @ A @ A2 @ B )
            = ( ord_less_eq @ A @ C @ D ) ) ) ) ).

% diff_eq_diff_less_eq
thf(fact_175_inf_OcoboundedI2,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [B: A,C: A,A2: A] :
          ( ( ord_less_eq @ A @ B @ C )
         => ( ord_less_eq @ A @ ( inf_inf @ A @ A2 @ B ) @ C ) ) ) ).

% inf.coboundedI2
thf(fact_176_inf_OcoboundedI1,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [A2: A,C: A,B: A] :
          ( ( ord_less_eq @ A @ A2 @ C )
         => ( ord_less_eq @ A @ ( inf_inf @ A @ A2 @ B ) @ C ) ) ) ).

% inf.coboundedI1
thf(fact_177_inf_Oabsorb__iff2,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ( ( ord_less_eq @ A )
        = ( ^ [B3: A,A4: A] :
              ( ( inf_inf @ A @ A4 @ B3 )
              = B3 ) ) ) ) ).

% inf.absorb_iff2
thf(fact_178_inf_Oabsorb__iff1,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ( ( ord_less_eq @ A )
        = ( ^ [A4: A,B3: A] :
              ( ( inf_inf @ A @ A4 @ B3 )
              = A4 ) ) ) ) ).

% inf.absorb_iff1
thf(fact_179_inf_Ocobounded2,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [A2: A,B: A] : ( ord_less_eq @ A @ ( inf_inf @ A @ A2 @ B ) @ B ) ) ).

% inf.cobounded2
thf(fact_180_inf_Ocobounded1,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [A2: A,B: A] : ( ord_less_eq @ A @ ( inf_inf @ A @ A2 @ B ) @ A2 ) ) ).

% inf.cobounded1
thf(fact_181_inf_Oorder__iff,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ( ( ord_less_eq @ A )
        = ( ^ [A4: A,B3: A] :
              ( A4
              = ( inf_inf @ A @ A4 @ B3 ) ) ) ) ) ).

% inf.order_iff
thf(fact_182_inf__greatest,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [X: A,Y: A,Z: A] :
          ( ( ord_less_eq @ A @ X @ Y )
         => ( ( ord_less_eq @ A @ X @ Z )
           => ( ord_less_eq @ A @ X @ ( inf_inf @ A @ Y @ Z ) ) ) ) ) ).

% inf_greatest
thf(fact_183_inf_OboundedI,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [A2: A,B: A,C: A] :
          ( ( ord_less_eq @ A @ A2 @ B )
         => ( ( ord_less_eq @ A @ A2 @ C )
           => ( ord_less_eq @ A @ A2 @ ( inf_inf @ A @ B @ C ) ) ) ) ) ).

% inf.boundedI
thf(fact_184_inf_OboundedE,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [A2: A,B: A,C: A] :
          ( ( ord_less_eq @ A @ A2 @ ( inf_inf @ A @ B @ C ) )
         => ~ ( ( ord_less_eq @ A @ A2 @ B )
             => ~ ( ord_less_eq @ A @ A2 @ C ) ) ) ) ).

% inf.boundedE
thf(fact_185_inf__absorb2,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [Y: A,X: A] :
          ( ( ord_less_eq @ A @ Y @ X )
         => ( ( inf_inf @ A @ X @ Y )
            = Y ) ) ) ).

% inf_absorb2
thf(fact_186_inf__absorb1,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [X: A,Y: A] :
          ( ( ord_less_eq @ A @ X @ Y )
         => ( ( inf_inf @ A @ X @ Y )
            = X ) ) ) ).

% inf_absorb1
thf(fact_187_inf_Oabsorb2,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [B: A,A2: A] :
          ( ( ord_less_eq @ A @ B @ A2 )
         => ( ( inf_inf @ A @ A2 @ B )
            = B ) ) ) ).

% inf.absorb2
thf(fact_188_inf_Oabsorb1,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [A2: A,B: A] :
          ( ( ord_less_eq @ A @ A2 @ B )
         => ( ( inf_inf @ A @ A2 @ B )
            = A2 ) ) ) ).

% inf.absorb1
thf(fact_189_le__iff__inf,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ( ( ord_less_eq @ A )
        = ( ^ [X3: A,Y3: A] :
              ( ( inf_inf @ A @ X3 @ Y3 )
              = X3 ) ) ) ) ).

% le_iff_inf
thf(fact_190_inf__unique,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [F: A > A > A,X: A,Y: A] :
          ( ! [X2: A,Y2: A] : ( ord_less_eq @ A @ ( F @ X2 @ Y2 ) @ X2 )
         => ( ! [X2: A,Y2: A] : ( ord_less_eq @ A @ ( F @ X2 @ Y2 ) @ Y2 )
           => ( ! [X2: A,Y2: A,Z2: A] :
                  ( ( ord_less_eq @ A @ X2 @ Y2 )
                 => ( ( ord_less_eq @ A @ X2 @ Z2 )
                   => ( ord_less_eq @ A @ X2 @ ( F @ Y2 @ Z2 ) ) ) )
             => ( ( inf_inf @ A @ X @ Y )
                = ( F @ X @ Y ) ) ) ) ) ) ).

% inf_unique
thf(fact_191_inf_OorderI,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [A2: A,B: A] :
          ( ( A2
            = ( inf_inf @ A @ A2 @ B ) )
         => ( ord_less_eq @ A @ A2 @ B ) ) ) ).

% inf.orderI
thf(fact_192_inf_OorderE,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [A2: A,B: A] :
          ( ( ord_less_eq @ A @ A2 @ B )
         => ( A2
            = ( inf_inf @ A @ A2 @ B ) ) ) ) ).

% inf.orderE
thf(fact_193_le__infI2,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [B: A,X: A,A2: A] :
          ( ( ord_less_eq @ A @ B @ X )
         => ( ord_less_eq @ A @ ( inf_inf @ A @ A2 @ B ) @ X ) ) ) ).

% le_infI2
thf(fact_194_le__infI1,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [A2: A,X: A,B: A] :
          ( ( ord_less_eq @ A @ A2 @ X )
         => ( ord_less_eq @ A @ ( inf_inf @ A @ A2 @ B ) @ X ) ) ) ).

% le_infI1
thf(fact_195_inf__mono,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [A2: A,C: A,B: A,D: A] :
          ( ( ord_less_eq @ A @ A2 @ C )
         => ( ( ord_less_eq @ A @ B @ D )
           => ( ord_less_eq @ A @ ( inf_inf @ A @ A2 @ B ) @ ( inf_inf @ A @ C @ D ) ) ) ) ) ).

% inf_mono
thf(fact_196_le__infI,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [X: A,A2: A,B: A] :
          ( ( ord_less_eq @ A @ X @ A2 )
         => ( ( ord_less_eq @ A @ X @ B )
           => ( ord_less_eq @ A @ X @ ( inf_inf @ A @ A2 @ B ) ) ) ) ) ).

% le_infI
thf(fact_197_le__infE,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [X: A,A2: A,B: A] :
          ( ( ord_less_eq @ A @ X @ ( inf_inf @ A @ A2 @ B ) )
         => ~ ( ( ord_less_eq @ A @ X @ A2 )
             => ~ ( ord_less_eq @ A @ X @ B ) ) ) ) ).

% le_infE
thf(fact_198_inf__le2,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [X: A,Y: A] : ( ord_less_eq @ A @ ( inf_inf @ A @ X @ Y ) @ Y ) ) ).

% inf_le2
thf(fact_199_inf__le1,axiom,
    ! [A: $tType] :
      ( ( semilattice_inf @ A )
     => ! [X: A,Y: A] : ( ord_less_eq @ A @ ( inf_inf @ A @ X @ Y ) @ X ) ) ).

% inf_le1
thf(fact_200_inf__sup__ord_I1_J,axiom,
    ! [A: $tType] :
      ( ( lattice @ A )
     => ! [X: A,Y: A] : ( ord_less_eq @ A @ ( inf_inf @ A @ X @ Y ) @ X ) ) ).

% inf_sup_ord(1)
thf(fact_201_inf__sup__ord_I2_J,axiom,
    ! [A: $tType] :
      ( ( lattice @ A )
     => ! [X: A,Y: A] : ( ord_less_eq @ A @ ( inf_inf @ A @ X @ Y ) @ Y ) ) ).

% inf_sup_ord(2)
thf(fact_202_sup_OcoboundedI2,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [C: A,B: A,A2: A] :
          ( ( ord_less_eq @ A @ C @ B )
         => ( ord_less_eq @ A @ C @ ( sup_sup @ A @ A2 @ B ) ) ) ) ).

% sup.coboundedI2
thf(fact_203_sup_OcoboundedI1,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [C: A,A2: A,B: A] :
          ( ( ord_less_eq @ A @ C @ A2 )
         => ( ord_less_eq @ A @ C @ ( sup_sup @ A @ A2 @ B ) ) ) ) ).

% sup.coboundedI1
thf(fact_204_sup_Oabsorb__iff2,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ( ( ord_less_eq @ A )
        = ( ^ [A4: A,B3: A] :
              ( ( sup_sup @ A @ A4 @ B3 )
              = B3 ) ) ) ) ).

% sup.absorb_iff2
thf(fact_205_sup_Oabsorb__iff1,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ( ( ord_less_eq @ A )
        = ( ^ [B3: A,A4: A] :
              ( ( sup_sup @ A @ A4 @ B3 )
              = A4 ) ) ) ) ).

% sup.absorb_iff1
thf(fact_206_sup_Ocobounded2,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [B: A,A2: A] : ( ord_less_eq @ A @ B @ ( sup_sup @ A @ A2 @ B ) ) ) ).

% sup.cobounded2
thf(fact_207_sup_Ocobounded1,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [A2: A,B: A] : ( ord_less_eq @ A @ A2 @ ( sup_sup @ A @ A2 @ B ) ) ) ).

% sup.cobounded1
thf(fact_208_sup_Oorder__iff,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ( ( ord_less_eq @ A )
        = ( ^ [B3: A,A4: A] :
              ( A4
              = ( sup_sup @ A @ A4 @ B3 ) ) ) ) ) ).

% sup.order_iff
thf(fact_209_sup_OboundedI,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [B: A,A2: A,C: A] :
          ( ( ord_less_eq @ A @ B @ A2 )
         => ( ( ord_less_eq @ A @ C @ A2 )
           => ( ord_less_eq @ A @ ( sup_sup @ A @ B @ C ) @ A2 ) ) ) ) ).

% sup.boundedI
thf(fact_210_sup_OboundedE,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [B: A,C: A,A2: A] :
          ( ( ord_less_eq @ A @ ( sup_sup @ A @ B @ C ) @ A2 )
         => ~ ( ( ord_less_eq @ A @ B @ A2 )
             => ~ ( ord_less_eq @ A @ C @ A2 ) ) ) ) ).

% sup.boundedE
thf(fact_211_sup__absorb2,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [X: A,Y: A] :
          ( ( ord_less_eq @ A @ X @ Y )
         => ( ( sup_sup @ A @ X @ Y )
            = Y ) ) ) ).

% sup_absorb2
thf(fact_212_sup__absorb1,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [Y: A,X: A] :
          ( ( ord_less_eq @ A @ Y @ X )
         => ( ( sup_sup @ A @ X @ Y )
            = X ) ) ) ).

% sup_absorb1
thf(fact_213_sup_Oabsorb2,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [A2: A,B: A] :
          ( ( ord_less_eq @ A @ A2 @ B )
         => ( ( sup_sup @ A @ A2 @ B )
            = B ) ) ) ).

% sup.absorb2
thf(fact_214_sup_Oabsorb1,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [B: A,A2: A] :
          ( ( ord_less_eq @ A @ B @ A2 )
         => ( ( sup_sup @ A @ A2 @ B )
            = A2 ) ) ) ).

% sup.absorb1
thf(fact_215_sup__unique,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [F: A > A > A,X: A,Y: A] :
          ( ! [X2: A,Y2: A] : ( ord_less_eq @ A @ X2 @ ( F @ X2 @ Y2 ) )
         => ( ! [X2: A,Y2: A] : ( ord_less_eq @ A @ Y2 @ ( F @ X2 @ Y2 ) )
           => ( ! [X2: A,Y2: A,Z2: A] :
                  ( ( ord_less_eq @ A @ Y2 @ X2 )
                 => ( ( ord_less_eq @ A @ Z2 @ X2 )
                   => ( ord_less_eq @ A @ ( F @ Y2 @ Z2 ) @ X2 ) ) )
             => ( ( sup_sup @ A @ X @ Y )
                = ( F @ X @ Y ) ) ) ) ) ) ).

% sup_unique
thf(fact_216_sup_OorderI,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [A2: A,B: A] :
          ( ( A2
            = ( sup_sup @ A @ A2 @ B ) )
         => ( ord_less_eq @ A @ B @ A2 ) ) ) ).

% sup.orderI
thf(fact_217_sup_OorderE,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [B: A,A2: A] :
          ( ( ord_less_eq @ A @ B @ A2 )
         => ( A2
            = ( sup_sup @ A @ A2 @ B ) ) ) ) ).

% sup.orderE
thf(fact_218_le__iff__sup,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ( ( ord_less_eq @ A )
        = ( ^ [X3: A,Y3: A] :
              ( ( sup_sup @ A @ X3 @ Y3 )
              = Y3 ) ) ) ) ).

% le_iff_sup
thf(fact_219_sup__least,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [Y: A,X: A,Z: A] :
          ( ( ord_less_eq @ A @ Y @ X )
         => ( ( ord_less_eq @ A @ Z @ X )
           => ( ord_less_eq @ A @ ( sup_sup @ A @ Y @ Z ) @ X ) ) ) ) ).

% sup_least
thf(fact_220_sup__mono,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [A2: A,C: A,B: A,D: A] :
          ( ( ord_less_eq @ A @ A2 @ C )
         => ( ( ord_less_eq @ A @ B @ D )
           => ( ord_less_eq @ A @ ( sup_sup @ A @ A2 @ B ) @ ( sup_sup @ A @ C @ D ) ) ) ) ) ).

% sup_mono
thf(fact_221_sup_Omono,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [C: A,A2: A,D: A,B: A] :
          ( ( ord_less_eq @ A @ C @ A2 )
         => ( ( ord_less_eq @ A @ D @ B )
           => ( ord_less_eq @ A @ ( sup_sup @ A @ C @ D ) @ ( sup_sup @ A @ A2 @ B ) ) ) ) ) ).

% sup.mono
thf(fact_222_le__supI2,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [X: A,B: A,A2: A] :
          ( ( ord_less_eq @ A @ X @ B )
         => ( ord_less_eq @ A @ X @ ( sup_sup @ A @ A2 @ B ) ) ) ) ).

% le_supI2
thf(fact_223_le__supI1,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [X: A,A2: A,B: A] :
          ( ( ord_less_eq @ A @ X @ A2 )
         => ( ord_less_eq @ A @ X @ ( sup_sup @ A @ A2 @ B ) ) ) ) ).

% le_supI1
thf(fact_224_sup__ge2,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [Y: A,X: A] : ( ord_less_eq @ A @ Y @ ( sup_sup @ A @ X @ Y ) ) ) ).

% sup_ge2
thf(fact_225_sup__ge1,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [X: A,Y: A] : ( ord_less_eq @ A @ X @ ( sup_sup @ A @ X @ Y ) ) ) ).

% sup_ge1
thf(fact_226_le__supI,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [A2: A,X: A,B: A] :
          ( ( ord_less_eq @ A @ A2 @ X )
         => ( ( ord_less_eq @ A @ B @ X )
           => ( ord_less_eq @ A @ ( sup_sup @ A @ A2 @ B ) @ X ) ) ) ) ).

% le_supI
thf(fact_227_le__supE,axiom,
    ! [A: $tType] :
      ( ( semilattice_sup @ A )
     => ! [A2: A,B: A,X: A] :
          ( ( ord_less_eq @ A @ ( sup_sup @ A @ A2 @ B ) @ X )
         => ~ ( ( ord_less_eq @ A @ A2 @ X )
             => ~ ( ord_less_eq @ A @ B @ X ) ) ) ) ).

% le_supE
thf(fact_228_inf__sup__ord_I3_J,axiom,
    ! [A: $tType] :
      ( ( lattice @ A )
     => ! [X: A,Y: A] : ( ord_less_eq @ A @ X @ ( sup_sup @ A @ X @ Y ) ) ) ).

% inf_sup_ord(3)
thf(fact_229_inf__sup__ord_I4_J,axiom,
    ! [A: $tType] :
      ( ( lattice @ A )
     => ! [Y: A,X: A] : ( ord_less_eq @ A @ Y @ ( sup_sup @ A @ X @ Y ) ) ) ).

% inf_sup_ord(4)
thf(fact_230_less__eq__hf__def,axiom,
    ( ( ord_less_eq @ hF_Mirabelle_hf )
    = ( ^ [A7: hF_Mirabelle_hf,B7: hF_Mirabelle_hf] :
        ! [X3: hF_Mirabelle_hf] :
          ( ( hF_Mirabelle_hmem @ X3 @ A7 )
         => ( hF_Mirabelle_hmem @ X3 @ B7 ) ) ) ) ).

% less_eq_hf_def
thf(fact_231_rev__hsubsetD,axiom,
    ! [C: hF_Mirabelle_hf,A5: hF_Mirabelle_hf,B4: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_hmem @ C @ A5 )
     => ( ( ord_less_eq @ hF_Mirabelle_hf @ A5 @ B4 )
       => ( hF_Mirabelle_hmem @ C @ B4 ) ) ) ).

% rev_hsubsetD
thf(fact_232_hsubsetCE,axiom,
    ! [A5: hF_Mirabelle_hf,B4: hF_Mirabelle_hf,C: hF_Mirabelle_hf] :
      ( ( ord_less_eq @ hF_Mirabelle_hf @ A5 @ B4 )
     => ( ( hF_Mirabelle_hmem @ C @ A5 )
       => ( hF_Mirabelle_hmem @ C @ B4 ) ) ) ).

% hsubsetCE
thf(fact_233_hsubsetD,axiom,
    ! [A5: hF_Mirabelle_hf,B4: hF_Mirabelle_hf,C: hF_Mirabelle_hf] :
      ( ( ord_less_eq @ hF_Mirabelle_hf @ A5 @ B4 )
     => ( ( hF_Mirabelle_hmem @ C @ A5 )
       => ( hF_Mirabelle_hmem @ C @ B4 ) ) ) ).

% hsubsetD
thf(fact_234_HF__Mirabelle__fsbjehakzm_Ozero__le,axiom,
    ! [X: hF_Mirabelle_hf] : ( ord_less_eq @ hF_Mirabelle_hf @ ( zero_zero @ hF_Mirabelle_hf ) @ X ) ).

% HF_Mirabelle_fsbjehakzm.zero_le
thf(fact_235_hf__equalityE,axiom,
    ! [A5: hF_Mirabelle_hf,B4: hF_Mirabelle_hf] :
      ( ( A5 = B4 )
     => ~ ( ( ord_less_eq @ hF_Mirabelle_hf @ A5 @ B4 )
         => ~ ( ord_less_eq @ hF_Mirabelle_hf @ B4 @ A5 ) ) ) ).

% hf_equalityE
thf(fact_236_le__iff__diff__le__0,axiom,
    ! [A: $tType] :
      ( ( ordered_ab_group_add @ A )
     => ( ( ord_less_eq @ A )
        = ( ^ [A4: A,B3: A] : ( ord_less_eq @ A @ ( minus_minus @ A @ A4 @ B3 ) @ ( zero_zero @ A ) ) ) ) ) ).

% le_iff_diff_le_0
thf(fact_237_distrib__inf__le,axiom,
    ! [A: $tType] :
      ( ( lattice @ A )
     => ! [X: A,Y: A,Z: A] : ( ord_less_eq @ A @ ( sup_sup @ A @ ( inf_inf @ A @ X @ Y ) @ ( inf_inf @ A @ X @ Z ) ) @ ( inf_inf @ A @ X @ ( sup_sup @ A @ Y @ Z ) ) ) ) ).

% distrib_inf_le
thf(fact_238_distrib__sup__le,axiom,
    ! [A: $tType] :
      ( ( lattice @ A )
     => ! [X: A,Y: A,Z: A] : ( ord_less_eq @ A @ ( sup_sup @ A @ X @ ( inf_inf @ A @ Y @ Z ) ) @ ( inf_inf @ A @ ( sup_sup @ A @ X @ Y ) @ ( sup_sup @ A @ X @ Z ) ) ) ) ).

% distrib_sup_le
thf(fact_239_less__eq__insert2__iff,axiom,
    ! [Z: hF_Mirabelle_hf,X: hF_Mirabelle_hf,Y: hF_Mirabelle_hf] :
      ( ( ord_less_eq @ hF_Mirabelle_hf @ Z @ ( hF_Mirabelle_hinsert @ X @ Y ) )
      = ( ( ord_less_eq @ hF_Mirabelle_hf @ Z @ Y )
        | ? [U2: hF_Mirabelle_hf] :
            ( ( ( hF_Mirabelle_hinsert @ X @ U2 )
              = Z )
            & ~ ( hF_Mirabelle_hmem @ X @ U2 )
            & ( ord_less_eq @ hF_Mirabelle_hf @ U2 @ Y ) ) ) ) ).

% less_eq_insert2_iff
thf(fact_240_order__refl,axiom,
    ! [A: $tType] :
      ( ( preorder @ A )
     => ! [X: A] : ( ord_less_eq @ A @ X @ X ) ) ).

% order_refl
thf(fact_241_le__numeral__extra_I3_J,axiom,
    ! [A: $tType] :
      ( ( linord1659791738miring @ A )
     => ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( zero_zero @ A ) ) ) ).

% le_numeral_extra(3)
thf(fact_242_HF__hfset,axiom,
    ! [A2: hF_Mirabelle_hf] :
      ( ( hF_Mirabelle_HF @ ( hF_Mirabelle_hfset @ A2 ) )
      = A2 ) ).

% HF_hfset
thf(fact_243_of__nat__le__0__iff,axiom,
    ! [A: $tType] :
      ( ( linord1659791738miring @ A )
     => ! [M: nat] :
          ( ( ord_less_eq @ A @ ( semiring_1_of_nat @ A @ M ) @ ( zero_zero @ A ) )
          = ( M
            = ( zero_zero @ nat ) ) ) ) ).

% of_nat_le_0_iff
thf(fact_244_of__nat__eq__iff,axiom,
    ! [A: $tType] :
      ( ( semiring_char_0 @ A )
     => ! [M: nat,N: nat] :
          ( ( ( semiring_1_of_nat @ A @ M )
            = ( semiring_1_of_nat @ A @ N ) )
          = ( M = N ) ) ) ).

% of_nat_eq_iff
thf(fact_245_of__nat__0,axiom,
    ! [A: $tType] :
      ( ( semiring_1 @ A )
     => ( ( semiring_1_of_nat @ A @ ( zero_zero @ nat ) )
        = ( zero_zero @ A ) ) ) ).

% of_nat_0
thf(fact_246_of__nat__0__eq__iff,axiom,
    ! [A: $tType] :
      ( ( semiring_char_0 @ A )
     => ! [N: nat] :
          ( ( ( zero_zero @ A )
            = ( semiring_1_of_nat @ A @ N ) )
          = ( ( zero_zero @ nat )
            = N ) ) ) ).

% of_nat_0_eq_iff
thf(fact_247_of__nat__eq__0__iff,axiom,
    ! [A: $tType] :
      ( ( semiring_char_0 @ A )
     => ! [M: nat] :
          ( ( ( semiring_1_of_nat @ A @ M )
            = ( zero_zero @ A ) )
          = ( M
            = ( zero_zero @ nat ) ) ) ) ).

% of_nat_eq_0_iff
thf(fact_248_of__nat__le__iff,axiom,
    ! [A: $tType] :
      ( ( linord1659791738miring @ A )
     => ! [M: nat,N: nat] :
          ( ( ord_less_eq @ A @ ( semiring_1_of_nat @ A @ M ) @ ( semiring_1_of_nat @ A @ N ) )
          = ( ord_less_eq @ nat @ M @ N ) ) ) ).

% of_nat_le_iff
thf(fact_249_of__nat__0__le__iff,axiom,
    ! [A: $tType] :
      ( ( linord1659791738miring @ A )
     => ! [N: nat] : ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( semiring_1_of_nat @ A @ N ) ) ) ).

% of_nat_0_le_iff
thf(fact_250_of__nat__mono,axiom,
    ! [A: $tType] :
      ( ( linord1659791738miring @ A )
     => ! [I: nat,J: nat] :
          ( ( ord_less_eq @ nat @ I @ J )
         => ( ord_less_eq @ A @ ( semiring_1_of_nat @ A @ I ) @ ( semiring_1_of_nat @ A @ J ) ) ) ) ).

% of_nat_mono
thf(fact_251_of__nat__diff,axiom,
    ! [A: $tType] :
      ( ( semiring_1_cancel @ A )
     => ! [N: nat,M: nat] :
          ( ( ord_less_eq @ nat @ N @ M )
         => ( ( semiring_1_of_nat @ A @ ( minus_minus @ nat @ M @ N ) )
            = ( minus_minus @ A @ ( semiring_1_of_nat @ A @ M ) @ ( semiring_1_of_nat @ A @ N ) ) ) ) ) ).

% of_nat_diff
thf(fact_252_dual__order_Oantisym,axiom,
    ! [A: $tType] :
      ( ( order @ A )
     => ! [B: A,A2: A] :
          ( ( ord_less_eq @ A @ B @ A2 )
         => ( ( ord_less_eq @ A @ A2 @ B )
           => ( A2 = B ) ) ) ) ).

% dual_order.antisym
thf(fact_253_dual__order_Oeq__iff,axiom,
    ! [A: $tType] :
      ( ( order @ A )
     => ( ( ^ [Y4: A,Z3: A] : Y4 = Z3 )
        = ( ^ [A4: A,B3: A] :
              ( ( ord_less_eq @ A @ B3 @ A4 )
              & ( ord_less_eq @ A @ A4 @ B3 ) ) ) ) ) ).

% dual_order.eq_iff

% Type constructors (45)
thf(tcon_fun___Lattices_Osemilattice__sup,axiom,
    ! [A8: $tType,A9: $tType] :
      ( ( semilattice_sup @ A9 )
     => ( semilattice_sup @ ( A8 > A9 ) ) ) ).

thf(tcon_fun___Lattices_Osemilattice__inf,axiom,
    ! [A8: $tType,A9: $tType] :
      ( ( semilattice_inf @ A9 )
     => ( semilattice_inf @ ( A8 > A9 ) ) ) ).

thf(tcon_fun___Lattices_Odistrib__lattice,axiom,
    ! [A8: $tType,A9: $tType] :
      ( ( distrib_lattice @ A9 )
     => ( distrib_lattice @ ( A8 > A9 ) ) ) ).

thf(tcon_fun___Orderings_Opreorder,axiom,
    ! [A8: $tType,A9: $tType] :
      ( ( preorder @ A9 )
     => ( preorder @ ( A8 > A9 ) ) ) ).

thf(tcon_fun___Lattices_Olattice,axiom,
    ! [A8: $tType,A9: $tType] :
      ( ( lattice @ A9 )
     => ( lattice @ ( A8 > A9 ) ) ) ).

thf(tcon_fun___Orderings_Oorder,axiom,
    ! [A8: $tType,A9: $tType] :
      ( ( order @ A9 )
     => ( order @ ( A8 > A9 ) ) ) ).

thf(tcon_fun___Groups_Ominus,axiom,
    ! [A8: $tType,A9: $tType] :
      ( ( minus @ A9 )
     => ( minus @ ( A8 > A9 ) ) ) ).

thf(tcon_Nat_Onat___Groups_Ocanonically__ordered__monoid__add,axiom,
    canoni770627133id_add @ nat ).

thf(tcon_Nat_Onat___Rings_Olinordered__nonzero__semiring,axiom,
    linord1659791738miring @ nat ).

thf(tcon_Nat_Onat___Groups_Ocancel__ab__semigroup__add,axiom,
    cancel146912293up_add @ nat ).

thf(tcon_Nat_Onat___Groups_Ocancel__comm__monoid__add,axiom,
    cancel1352612707id_add @ nat ).

thf(tcon_Nat_Onat___Lattices_Osemilattice__sup_1,axiom,
    semilattice_sup @ nat ).

thf(tcon_Nat_Onat___Lattices_Osemilattice__inf_2,axiom,
    semilattice_inf @ nat ).

thf(tcon_Nat_Onat___Lattices_Odistrib__lattice_3,axiom,
    distrib_lattice @ nat ).

thf(tcon_Nat_Onat___Rings_Osemiring__1__cancel,axiom,
    semiring_1_cancel @ nat ).

thf(tcon_Nat_Onat___Groups_Ocomm__monoid__diff,axiom,
    comm_monoid_diff @ nat ).

thf(tcon_Nat_Onat___Nat_Osemiring__char__0,axiom,
    semiring_char_0 @ nat ).

thf(tcon_Nat_Onat___Orderings_Opreorder_4,axiom,
    preorder @ nat ).

thf(tcon_Nat_Onat___Rings_Osemiring__1,axiom,
    semiring_1 @ nat ).

thf(tcon_Nat_Onat___Lattices_Olattice_5,axiom,
    lattice @ nat ).

thf(tcon_Nat_Onat___Orderings_Oorder_6,axiom,
    order @ nat ).

thf(tcon_Nat_Onat___Groups_Ominus_7,axiom,
    minus @ nat ).

thf(tcon_Nat_Onat___Groups_Ozero,axiom,
    zero @ nat ).

thf(tcon_Set_Oset___Lattices_Osemilattice__sup_8,axiom,
    ! [A8: $tType] : ( semilattice_sup @ ( set @ A8 ) ) ).

thf(tcon_Set_Oset___Lattices_Osemilattice__inf_9,axiom,
    ! [A8: $tType] : ( semilattice_inf @ ( set @ A8 ) ) ).

thf(tcon_Set_Oset___Lattices_Odistrib__lattice_10,axiom,
    ! [A8: $tType] : ( distrib_lattice @ ( set @ A8 ) ) ).

thf(tcon_Set_Oset___Orderings_Opreorder_11,axiom,
    ! [A8: $tType] : ( preorder @ ( set @ A8 ) ) ).

thf(tcon_Set_Oset___Lattices_Olattice_12,axiom,
    ! [A8: $tType] : ( lattice @ ( set @ A8 ) ) ).

thf(tcon_Set_Oset___Orderings_Oorder_13,axiom,
    ! [A8: $tType] : ( order @ ( set @ A8 ) ) ).

thf(tcon_Set_Oset___Groups_Ominus_14,axiom,
    ! [A8: $tType] : ( minus @ ( set @ A8 ) ) ).

thf(tcon_HOL_Obool___Lattices_Osemilattice__sup_15,axiom,
    semilattice_sup @ $o ).

thf(tcon_HOL_Obool___Lattices_Osemilattice__inf_16,axiom,
    semilattice_inf @ $o ).

thf(tcon_HOL_Obool___Lattices_Odistrib__lattice_17,axiom,
    distrib_lattice @ $o ).

thf(tcon_HOL_Obool___Orderings_Opreorder_18,axiom,
    preorder @ $o ).

thf(tcon_HOL_Obool___Lattices_Olattice_19,axiom,
    lattice @ $o ).

thf(tcon_HOL_Obool___Orderings_Oorder_20,axiom,
    order @ $o ).

thf(tcon_HOL_Obool___Groups_Ominus_21,axiom,
    minus @ $o ).

thf(tcon_HF__Mirabelle__fsbjehakzm_Ohf___Lattices_Osemilattice__sup_22,axiom,
    semilattice_sup @ hF_Mirabelle_hf ).

thf(tcon_HF__Mirabelle__fsbjehakzm_Ohf___Lattices_Osemilattice__inf_23,axiom,
    semilattice_inf @ hF_Mirabelle_hf ).

thf(tcon_HF__Mirabelle__fsbjehakzm_Ohf___Lattices_Odistrib__lattice_24,axiom,
    distrib_lattice @ hF_Mirabelle_hf ).

thf(tcon_HF__Mirabelle__fsbjehakzm_Ohf___Orderings_Opreorder_25,axiom,
    preorder @ hF_Mirabelle_hf ).

thf(tcon_HF__Mirabelle__fsbjehakzm_Ohf___Lattices_Olattice_26,axiom,
    lattice @ hF_Mirabelle_hf ).

thf(tcon_HF__Mirabelle__fsbjehakzm_Ohf___Orderings_Oorder_27,axiom,
    order @ hF_Mirabelle_hf ).

thf(tcon_HF__Mirabelle__fsbjehakzm_Ohf___Groups_Ominus_28,axiom,
    minus @ hF_Mirabelle_hf ).

thf(tcon_HF__Mirabelle__fsbjehakzm_Ohf___Groups_Ozero_29,axiom,
    zero @ hF_Mirabelle_hf ).

% Conjectures (1)
thf(conj_0,conjecture,
    ( ( hF_Mirabelle_hpair @ x @ y )
   != ( zero_zero @ hF_Mirabelle_hf ) ) ).

%------------------------------------------------------------------------------